您的位置:首页 > 编程语言 > Java开发

JAVA解析嵌套的JSON字符串.

2011-01-20 16:29 573 查看
这里的JSON串,是以饭否的Public Time Line上面的JSON格式的字符串为例子的.
http://api.fanfou.com/statuses/public_timeline.json
饭否现在还是使用HTTP Basic验证. 如果你不清楚,通过饭否的api登录并获取数据的方法, 可以参见本人的

http://blog.csdn.net/w59879213/archive/2011/01/14/6140523.aspx

这篇文章,以饭否的API为例子, 讲述了如何进行HTTP Basic验证,并获取回数据.

 

这里的项目前提是, 已经获取到了数据, 数据的字符串是 json

 

Android开发的环境中已经包括了org.json的包,

但是,如果是单纯创建的JAVA项目,可能并不存在org.json这个包.  可以搜索json.jar这个文件, 右键,你的JRE System Library->Build Path, 添加到你的项目中就可以了.

 

在文件头上加上

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 

 

解析的步骤其实也很简单.

首先通过JSONArray的对象获得全部的数据的数组,

JSONArray array = new JSONArray(json);

饭否的例子, 就是所有发言的信息.  但是饭否的每一条发言的信息中, 都嵌套一个用户信息的JSON的字符串. 

所以在取得每一条的发言的信息的时候, 需要再取一次这个以user为标记的JSON字符串.

 

JSONObject object = array.getJSONObject(i);
//获取嵌套的JSON串
String users = object.getString("user");
//将获取的嵌套的JSON串,再解释一次, 得到可使用的对象.
JSONObject user = new JSONObject(users);
 

 

 

解析过后, 就可以使用对象的getString("key")的方法来获取对应的值了~

 

全部的代码如下:

//获得全部的JSON串.
JSONArray array = new JSONArray(json);
for(int i=0;i<array.length();i++)
{
/*通过列表获得出第一条记录的列表,包含了信息的id,发送者...
其中该列表中嵌套着另一个JSON串*/
JSONObject object = array.getJSONObject(i); //获取嵌套的JSON串 String users = object.getString("user"); //将获取的嵌套的JSON串,再解释一次, 得到可使用的对象. JSONObject user = new JSONObject(users);
System.out.println(object.getString("id")+ ":" + user.getString("birthday"));
}
 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息