-4

私はアンドロイドの世界では初心者で、この URL から JSONArray を取得しようとしています: http://www.softmarketing.it/json/view/azienda/7

TabHostExample.java:

public class TabHostExample extends TabActivity {

private static String url = "http://www.softmarketing.it/json/view/azienda/7";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tab_host_example);

    //JSONParser parser= new JSONParser();
    //JSONObject myJSON= parser.makeHttpRequest(url, "POST", null);
    try{
        // Create a new HTTP Client
        DefaultHttpClient defaultClient = new DefaultHttpClient();
        // Setup the get request
        HttpGet httpGetRequest = new HttpGet("http://www.softmarketing.it/json/view/azienda/7");

        // Execute the request in the client
        HttpResponse httpResponse = defaultClient.execute(httpGetRequest);
        // Grab the response
        BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8"));
        String json = reader.readLine();

        // Instantiate a JSON object from the request response
        JSONObject jsonObject = new JSONObject(json);

    } catch(Exception e){
        // In your production code handle any errors and catch the individual exceptions
        e.printStackTrace();
    }

           .....

LogCat では、次のように表示されます。

12-16 08:14:41.987: E/MYAPP(1183): exception: null
12-16 08:21:34.927: E/MYAPP(1245): exception: null

変数 e には次の値があります。

e: 原因: NetworkOnMainThreadEception

および他の値...

私を手伝ってくれますか?解析を解決しようとして 3 日が経ちました...ありがとう

4

2 に答える 2

0

そのため、UI とは別のスレッドで json コンテンツを取得し、解析する必要があります。

Asynctask と HttpGetClient を使用できます

または

Android Asynchronous Http Client ライブラリを使用できます。非常にシンプルなライブラリ、小さなサイズ (25kb)、使いやすく、非同期 コードは次のようになります。

AsyncHttpClient client = new AsyncHttpClient();
client.get("http://www.softmarketing.it/json/view/azienda/7", new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String response) {
      // Here is your content !
      // now you have to parse it
      System.out.println(response);
    }
});

ここで入手可能

次に、必要に応じてファイルに解析する必要があります(json形式の場合は、Gsonライブラリをお勧めします)

残りはあなた次第です!

于 2013-12-16T13:33:23.000 に答える