2013-01-24 55 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