2013-01-24 56 views
0

我有一個JSON字符串讀解析JSON

[ 
    {"created_at":"Thu Jan 24 07:27:12 +0000 2013", 
    "id":294345590119227392, 
    "user":{ 
      "id":213539531, 
       "name":"Hamid", 
       "screen_name":"HamidMirGEO", 
      }, 
    "retweeted":false 
    }] 

解析使用以下代碼

 InputStream is = this.getResources().openRawResource(R.raw.jsontwitter); 
     byte [] buffer = new byte[is.available()]; 
     while (is.read(buffer) != -1); 
     String jsontext = new String(buffer); 
     JSONArray entries = new JSONArray(jsontext); 
     for (i=0;i<entries.length();i++) 
     { 
      JSONObject post = entries.getJSONObject(i); 
      x += "Date:" + post.getString("created_at") + "\n"; 
      x += "Post:" + post.getString("text") + "\n\n"; 
      x += "Pp:" + post.getString("screen_name") + "\n\n";//error reading this 
     } 

成功分析前兩個但面臨的問題讀取數據在第二大括號{}; 任何解決方案。

回答

4

用途:

x += "Pp:" + post.getJSONObject("user").getString("screen_name") + "\n\n"; 

相反的:

x += "Pp:" + post.getString("screen_name") + "\n\n"; 
+0

它的偉大工程:-)非常感謝你,留祝福好友。 –

2

screen_name是一個嵌套的對象。使用此代碼:

post.getJSONObject("user").getString("screen_name"); 
+0

謝謝,其作品 –

+0

@ExtremeProgrammer:不要忘記接受答案 –

1

「HamidMirGeo」後有額外的昏迷,請將其刪除。

2

要獲得SCREEN_NAME你需要訪問它包含在JSONObject像這樣:

JSONObject user = post.getJSONObject("user"); 
user.getString("screen_name") // this will return the screen_name