2013-06-24 4 views
0

Нужна помощь для анализа этого json в Android. Анализ должен быть получен по URL-адресу. http://www.azmetr.com/view.json Получил много учебников. Но не смог научиться разбирать такую ​​базу.Android-парсер этого кода

Я использовал собственный JSONObject. или лучше использовать GSON или другие?

{ 
    "azmetr":[ 
     { 
     "mebel":{ 
      "nid":"39", 
      "title":"Oturacaq 4" 
     } 
     }, 
     { 
     "mebel":{ 
      "nid":"38", 
      "title":"Oturacaq 3" 
     } 
     }, 
     { 
     "mebel":{ 
      "nid":"37", 
      "title":"Oturacaq 2" 
     } 
     }, 
     { 
     "mebel":{ 
      "nid":"36", 
      "title":"Oturacaq 1" 
     } 
     }, 
     { 
     "mebel":{ 
      "nid":"35", 
      "title":"Ag kreslo" 
     } 
     }, 
     { 
     "mebel":{ 
      "nid":"34", 
      "title":"Ag divan" 
     } 
     }, 
     { 
     "mebel":{ 
      "nid":"33", 
      "title":"Zebra kreslo" 
     } 
     }, 
     { 
     "mebel":{ 
      "nid":"32", 
      "title":"Zebra divan" 
     } 
     }, 
     { 
     "mebel":{ 
      "nid":"31", 
      "title":"Korolevski kreslo" 
     } 
     }, 
     { 
     "mebel":{ 
      "nid":"30", 
      "title":"Korolevski divan" 
     } 
     } 
    ] 
} 
+2

Что вы пробовали? [Вот пример с использованием стандартного анализатора] (http://www.androidhive.info/2012/01/android-json-parsing-tutorial/) (но обратите внимание, что вы, скорее всего, получите сообщение об использовании сетевых операций в потоке пользовательского интерфейса). Есть много веских причин, чтобы предпочесть GSON, я слышу, поэтому [здесь приведены примеры кода примера] (https://sites.google.com/site/gson/gson-user-guide), чтобы вы могли сравнить. –

ответ

0

Попробуйте использовать эти коды, чтобы проанализировать массив ответов json. Эти коды работают для меня.

public void update(){ 

     try { 
       HttpParams httpParams = new BasicHttpParams(); 
       HttpConnectionParams.setConnectionTimeout(httpParams, 0); 
       HttpConnectionParams.setSoTimeout(httpParams, 0); 
       // 
       HttpParams p = new BasicHttpParams(); 
       p.setParameter("user", "1"); 

       // Instantiate an HttpClient 
       HttpClient httpclient = new DefaultHttpClient(p);     
       String url = "Your URL"; 
       Log.i(url, "send task - start webservice"); 

       HttpPost httppost = new HttpPost(url); 
       // Instantiate a GET HTTP method 
       try { 
        Log.i(getClass().getSimpleName(), "send task - start"); 
        // 
        ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
        String responseBody = httpclient.execute(httppost, responseHandler); 
        // Parse 
        JSONObject json = new JSONObject(responseBody); 
        JSONArray jArray = json.getJSONArray("posts"); 
        int count = jArray.length(); 
        mebel= new String[count]; 
        nid= new String[count]; 
        title = new String[count]; 



        for (int i = 0; i < jArray.length(); i++) { 
         JSONObject e = jArray.getJSONObject(i); 
         String s = e.getString("post"); 
         JSONObject jObject = new JSONObject(s); 

         mebel[i] = jObject.getString("mebel"); 
         nid[i] = jObject.getString("nid"); 
         title[i] = jObject.getString("title"); 

        } 


       } catch (ClientProtocolException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     catch (Throwable t) { 
       Toast.makeText(HomeActivity.this, "Request failed: " + t.toString(),Toast.LENGTH_LONG).show(); 
     } 


    } 

Примечание: если вы используете 2.3 версию или уровень апи 10, вам нужно это коды и поместить его после OnCreate.

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
StrictMode.setThreadPolicy(policy); 
+0

Спасибо за очень полезный ответ. Почему это «JSONArray jArray = json.getJSONArray (« posts »); ? Не могли бы вы написать, как выводится эта иерархия? – user2514633

+0

вы также можете использовать «получить», если они будут одинаковыми с вашим веб-сервисом. если вы нашли мой ответ полезным, можете ли вы его принять? –

0

Эй, никто не может учить В SO All the people is ready to solving problem not teaching.

см. Пример this и узнайте себя, если у вас возникли проблемы, а затем добавьте комментарий.