加载中…
个人资料
inlcude_ze
inlcude_ze
  • 博客等级:
  • 博客积分:0
  • 博客访问:68,511
  • 关注人气:13
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

利用Gson解析Json数据

(2011-11-09 16:30:45)
分类: android学习记录
下载google-gson 的jar包
放到工程的lib
1,新建JsonReader(属于gson jar包的类),功能强大啊~~~
解析单个json数据?没问题,
JsonReader reader= new JsonReader(new String Reader(jsonString))   这是构造方法,jsonString是json的数据,不是对象。
reader.beginObject(),接着开始用循环判断有没有键值对,while(reader.hasNext())
{if(reader.nextName().equals("name"))
//reader.nextString(),nextInt()等,得到key-value对应的类型的数据。
}
用完之后reader.endObject()
 解析json数组?同样的方法,只需要多加一重循环即可,reader.beginArray()...最后记得endArray()

 解析整个对象?一样可以!
(略。。。)
附代码:
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "ze");
jsonObject.put("age", 21);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name", "yuan");
jsonObject2.put("age", 20);
JSONArray array = new JSONArray();
array.add(jsonObject);
array.add(jsonObject2);
String jString = array.toString();
System.out.println(jString);
JsonReader reader = new JsonReader(new StringReader(jString));
try {
reader.beginArray();
while (reader.hasNext()) {
reader.beginObject();
while(reader.hasNext()) {
if(reader.nextName().equals("name")) {
System.out.println("my name is " + reader.nextString());
}
if(reader.nextName().equals("age")) {
System.out.println("my age is " + reader.nextInt());
}
}
reader.endObject();
}
reader.endArray();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有