现有一个json字符串,格式如下
{
'msg': '返回的数据',
'code': 200,
'list': [{
'name': '张三',
'ID': 1
}, {
'name': '李四',
'ID': 2
}],
'map': {
'name': 'Map数据',
'ID': 'Map'
}
}
在android上解析这段json字符串:
基本解析方法
这种解析方法只用到了JDK中自带的类,但解析过程比较麻烦
String json = "{'msg':'返回的数据','code':200,'list':[{'name':'张三','ID':1},{'name':'李四','ID':2}],'map':{'name':'Map数据','ID':'Map'}}";
try {
JSONObject jo = new JSONObject(json);
//获取msg字段的值
String msg = jo.getString("msg");
Log.i("Json", "msg:"+ msg);
//获取code字段的值
int code = jo.getInt("code");
Log.i("Json", "code:"+ code);
//获取list字段的数据
JSONArray array = jo.getJSONArray("list");
for (int i = 0; i < array.length(); i++){
JSONObject object = array.getJSONObject(i);
Iterator<String> iterator = object.keys();
while (iterator.hasNext()){
String key = iterator.next();
Log.i("Json", key + ":" + object.get(key));
}
}
//获取map字段的数据
JSONObject object = jo.getJSONObject("map");
Iterator<String> iterator = object.keys();
while (iterator.hasNext()){
String key = iterator.next();
Log.i("Json", key + ":" + object.get(key));
}
} catch (JSONException e) {
e.printStackTrace();
}
可以看到日志输出
Json: msg:返回的数据
Json: code:200
Json: ID:1
Json: name:张三
Json: ID:2
Json: name:李四
Json: ID:Map
Json: name:Map数据
使用fastjson解析
fastjson提供了大量封装好的方法,可以简便快速地解析json数据.
使用方法可以查看 使用fastjson解析json数据