2016-04-01 21 views
0

まず、同様の質問が出されたことがわかります。すべての質問の中で、私は助けてくれたものを見つけました:https://stackoverflow.com/a/29798632/4293403しかし、私は自分の風景に受け入れられた答えを適用することに問題があります。入れ子になったJSONオブジェクトの配列を解析する方法

このサンプルJSONコンテンツ:

[ 
    { 

    "title": "This a Sample title for each post_title", 

    "excerpt": "And this is a sample of the post_body", 

    "featured_picture": { 

     "source": "https://exapmple.com/blah/blah/image.jpg", 
     "year": "2015", 
     "ownwer": "Akim Man", 

    }, 

    },... 

そして、これはコードです:

//This method will parse json data 
    private void parseData(JSONArray array){ 
     Log.d(TAG, "Parsing array"); 

     for(int i = 0; i<array.length(); i++) { 
      PostItems postItem = new PostItems(); 
      JSONObject jsonObject = null; 
      try { 
       jsonObject = array.getJSONObject(i); 
       postItem.setPost_title(jsonObject.getString(ConfigPost.TAG_POST_TITLE)); 
       postItem.setPost_body(jsonObject.getString(ConfigPost.TAG_POST_BODY)); 

       //Parsing featured_image object 
       for (int f = 0; f<array.length(); f++) { 
        JSONObject object = array.getJSONObject(f); 
        JSONObject postImage = object.getJSONObject("featured_picture"); 
        String imageURL = postImage.getString("source"); 
       } 

       postItem.setPost_image(imageURL(ConfigPost.TAG_POST_IMAGE)); 

      } catch (JSONException w) { 
       w.printStackTrace(); 
       //Toast.makeText(this, "Error in parsing Json", Toast.LENGTH_LONG).show(); 
      } 
      mPostItemsList.add(postItem); 
     } 

    } 

ラインでpostItem.setPost_image(imageURL(ConfigPost.TAG_POST_IMAGE)); AndroidのメーカーはimageURLをred_highlightingされており、私はそれを置くと、私は次を参照してください。 "メソッド 'imageURL(java.lang.String)'を解決できません。

どうか私は間違っているのですか?

Implementaing Shadabアンサリからスタックトレースが

04-01 23:47:51.372 747-775/? D/StatusBarManagerService: manageDisableList userId=0 what=0x0 pkg=Window{74ca6f8 u0 com.example.Poster/com.example.Poster.MainActivity} 
04-01 23:47:51.372 17672-17672/com.example.Poster D/MainActivity: Parsing array 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.parseData(MainActivity.java:153) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.access$000(MainActivity.java:43) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:118) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:109) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.parseData(MainActivity.java:153) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.access$000(MainActivity.java:43) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:118) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:109) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.parseData(MainActivity.java:153) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.access$000(MainActivity.java:43) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:118) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:109) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.parseData(MainActivity.java:153) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.access$000(MainActivity.java:43) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:118) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:109) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.parseData(MainActivity.java:153) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.access$000(MainActivity.java:43) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:118) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:109) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.parseData(MainActivity.java:153) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.access$000(MainActivity.java:43) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:118) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:109) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.parseData(MainActivity.java:153) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.access$000(MainActivity.java:43) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:118) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:109) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.parseData(MainActivity.java:153) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.access$000(MainActivity.java:43) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:118) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:109) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.parseData(MainActivity.java:153) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.access$000(MainActivity.java:43) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:118) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:109) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.parseData(MainActivity.java:153) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity.access$000(MainActivity.java:43) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:118) 
04-01 23:47:51.382 17672-17672/com.example.Poster W/System.err:  at com.example.Poster.MainActivity$2.onResponse(MainActivity.java:109) 
04-01 23:47:57.708 747-798/? W/InputDispatcher: channel '74ca6f8 com.example.Poster/com.example.Poster.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 
04-01 23:47:57.708 747-798/? E/InputDispatcher: channel '74ca6f8 com.example.Poster/com.example.Poster.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 
04-01 23:47:57.708 747-823/? W/InputDispatcher: Attempted to unregister already unregistered input channel '74ca6f8 com.example.Poster/com.example.Poster.MainActivity (server)' 
04-01 23:47:57.708 747-823/? I/WindowState: WIN DEATH: Window{74ca6f8 u0 com.example.Poster/com.example.Poster.MainActivity} 
04-01 23:47:57.718 747-1385/? W/ActivityManager: Force removing ActivityRecord{ded20d6 u0 com.example.Poster/.MainActivity t19141}: app died, no saved state 
+0

parseData()に渡すデータをデバッグしましたか? –

+0

デバッグ?あなたをつかまえません。 – Faraday

答えて

0

回答あなたはあなたのコード内の任意のそのような方法を持っていない -

imageURL(String param) 

私はあなただけimageURLを設定したいと思います。その場合、コードは次のようになります。

for (int f = 0; f<array.length(); f++) { 
        JSONObject object = array.getJSONObject(f); 
        JSONObject postImage = object.getJSONObject("featured_picture"); 
        String imageURL = postImage.getString("source"); 
    postItem.setPost_image(imageURL); 
       } 
+0

Not working Sir、スタックトレースのMainActivity.parseDataとMainActivity.onResponseでシステムがクラッシュし、システムエラーが表示される – Faraday

+0

クラッシュログを投稿してください。 –

+0

47:51.372 17672から17672/com.example.Poster D/MainActivity:解析アレイ 04-01 23:47:51.382 17672から17672/com.example.Poster W/System.errの:com.example.Posterました。 MainActivity.parseData(MainActivity.java:153) 04-01 23:47:51.382 17672から17672/com.example.Poster W/System.errの:com.example.Poster.MainActivity.access $ 000で(MainActivity.java: 43) – Faraday

関連する問題