Android解析json

来源:互联网 发布:java删除指定文件 编辑:程序博客网 时间:2024/06/03 19:47

复杂的多层嵌套的json数据用gson解析,结构明显易用,但是对于简单的数据,我觉得org.json就够了,比如一层结构的{“resultcode”:”200”,”reason”:”Return Successd!”}和两层{“result”:{“area”:”江苏省苏州市”, “location”:”电信”}这种简单的结构,一层结构和复杂结构的解析方法网上很多,但是我找了很久都没有找到这种两层{}结构的怎么解析,在java中用net.sf.JSONObject就可以了,但是我不知道为什么在Android中不能用这个包,终于自己尝试了出来,代码如下:
这是要解析的json数据:

{   "resultcode":"200",   "reason":"Return Successd!",   "result":{      "area":"江苏省苏州市",      "location":"电信"   }}

对应的解析代码

/***jsonstr是我从服务器拿回来的json数据,就是上面的那段数据**/try {      JSONObject object = new JSONObject(jsonstr);      String picker = object.getString("result");      JSONObject res = new JSONObject(picker);      String area =res.getString("area");      String location = res.getString("location");      result.setText("AREA: "+area+ "\nLOCATION: "+ location);      } catch (JSONException e) {           e.printStackTrace();                                 }

查阅了jsonobject的api文档后发现了这个:
public JSONObject(String string)throws JSONException

Construct a JSONObject from a source JSON text string.

This is the most commonly used JSONObject constructor.
对于在这个问题苦苦纠结很久的我如获至宝啊!也就是说,我们可以直接从一个json结构的字符串创建一个jsonobject对象,那么它怎么拿到嵌套在里面的那个json数据呢?就好像JSONObject.fromObject()一样,那么我用getString()方法,拿到result这个key,所对应的的value,不就是拿到内层的json数据了吗?我把value的值再给一个字符串,再用上面的方法创建一个新的JSONObject,这样就拿到了内层json数据的东西了!事实证明还是要多看API的!
@limengwe 多谢大哥这两天对我的帮助!

0 0
原创粉丝点击