1、识别json格式字符串是JSONObject还是JSONArray
首先要分清楚 是 哪种格式 才能使用 那种进行解析
写道
{"key": "value"} //JSONObject(对象)
[{"key1": "value1"}, {"key2": "value2"}] //JSONArray(数组)
{}为对象,而 【{},{}】 为数据
[{"key1": "value1"}, {"key2": "value2"}] //JSONArray(数组)
{}为对象,而 【{},{}】 为数据
2、遍历json数组
例如 得到如下的 数据
{
"person":"weiwei",
"photos":[
{
"id":1,
"name":"head"
},
{
"id":2,
"name":"body"
}
]
}
"person":"weiwei",
"photos":[
{
"id":1,
"name":"head"
},
{
"id":2,
"name":"body"
}
]
}
可以看出来,最外面是个json对象,photos节点是个数组,遍历代码如下:
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
JSONObject jsonObject = JSONObject.fromObject(result);
String feature = jsonObject.getString("person");
JSONArray photoArray = jsonObject.getJSONArray("photos");
for (int i = 0; i < photoArray.size(); i++) {
JSONObject object = (JSONObject) photoArray.get(i);
int id = object.getInt("id");
String name = object.getString("name");
}
import net.sf.json.JSONObject;
JSONObject jsonObject = JSONObject.fromObject(result);
String feature = jsonObject.getString("person");
JSONArray photoArray = jsonObject.getJSONArray("photos");
for (int i = 0; i < photoArray.size(); i++) {
JSONObject object = (JSONObject) photoArray.get(i);
int id = object.getInt("id");
String name = object.getString("name");
}
格式化 json 在线地址 http://www.bejson.com/ (挺不错的 可以提示错误类型)
最后 解析时候 要分清楚 是对象还是数组。 (很重要)