2015-11-24 62 views
-3

我想解析嵌套的JSON像这样JSON解析嵌套的JSON与凌空

http://javatechig.com/?json=get_recent_posts&count=10

,但我不与前嵌套JSON的工作,我知道解析JSON对象和数组孤单,但我不知道嵌套json解析。 iwant得到poststitle并获得tumbnail_images

我写一些代码TUMBNAIL url,但我有一个错误

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, (String) null, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 

       try { 
        final String posts = response.getString("posts"); 

//     ================================================ Json Array Request 
        JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, (String) null, new Response.Listener<JSONArray>() { 
         @Override 
         public void onResponse(JSONArray response) { 
          String arrayResponse = ""; 

          try { 
           for (int i = 0; i < response.length(); i++) { 

            JSONObject post = (JSONObject) response.get(i); 
            String title = post.getString("title"); 
            arrayResponse += "title : " + title; 

           } 

          } 
          catch (JSONException e) { 
           e.printStackTrace(); 
          } 

          //btnShow ClickListener 
          btnShowPost.setOnClickListener(new View.OnClickListener() { 
           @Override 
           public void onClick(View v) { 
            txtShowPosts.setText(arrayResponse); 
           } 
          }); 



         } 
        } 
       },new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(MainActivity.this, "We have a problem in Array Request ", Toast.LENGTH_SHORT).show(); 
        } 
       }); 
       jsonResponse = ""; 
       jsonResponse += "posts " + posts; 
       ); 

      } 

      catch(
      JSONException e 
      ) 

      { 
       e.printStackTrace(); 
       Toast.makeText(MainActivity.this, "We have a problem ", Toast.LENGTH_SHORT).show(); 
      } 

     } 
    } 

    ,new Response.ErrorListener() 

    { 
     @Override 
     public void onErrorResponse (VolleyError error){ 
     Toast.makeText(MainActivity.this, "We have a problem in volley ", Toast.LENGTH_SHORT).show(); 
    } 
    } 

    ); 


    AppController.getInstance().addToRequestQueue(jsonObjectRequest); 
+0

你可能想阅读[我如何问一个好问题](http://stackoverflow.com/help/how-to-ask),这增加了得到一个有用的答案_drastically_。你可能会发现[ESR](https://en.m.wikipedia.org/wiki/Eric_S._Raymond)的优秀论文[如何提问智能方式](http://catb.org/~esr/) faqs/smart-questions.html)也很有帮助。 –

回答

0

通过您的JSON字符串,在这里你会得到所有冠军。

public ArrayList<String> getTitles(final JSONObject object){ 
    ArrayList<String> returnData = new ArrayList<>(); 
    try{ 
     JSONArray postArray = object.getJSONArray("posts"); 
     for(int x=0;x<postArray.length();x++){ 
      returnData.add(postArray.getJSONObject(x).getString("title").toString()); 
     } 
    } 
    catch (JSONException e){} 
    return returnData; 
} 

如何:在你的JSON字符串你必须分析标题这样。

  1. 1st将字符串转换为JSON。
  2. 解析后的数组
  3. 然后运行一个循环来获取子元素。 (在这里你会发现所有的标题)
+0

谢谢你的答案,但我需要用排球库 – majid

+0

将响应JSONObject传递给函数。 Volley无法解析JSON。 –

+0

@majid,如果它有用,请用Upvote赞赏:)。 –