假如获取的数据是:
{
"data": [
{
"username": "mike",
"age": 28
},
{
"username": "lucas",
"age": 16
}
],
"msg": "",
"status": "0"
}
也就是一个大的json中,嵌套一个包含多个json的数组.
这种情况可以利用阿里的Fastjson将json字符串转换为实体类,也可以通过Fastjson获取其中的数据,这里主要讲下后者如何实现
具体是通过Fastjson中两个类:JSONObject和JSONArray来实现的,JSONObject是转换格式为{ }的json数据,而JSONArray是转换格式为[]的json数据,下面是具体的实现步骤
- 调用Fastjson中的JSON.parseObject(data)将json字符串转换为JSONObject,这里的data表示整个json字符串,命名由开发者自己决定.
JSONObject jsonObject = JSON.parseObject(data);
通过jsonObject.getString("data")获取key为"data"的json数据,并调用JSON.parseArray将其转换为JSONArray对象
JSONArray userInfo = JSON.parseArray(jsonObject.getString("data"));
- 此时获取到的为一个json数组,通过遍历取到索引处具体的值就可以取出相应的username或者age
for (int i = 0;i<userInfo.size();i++){ JSONObject parseObject = JSON.parseObject(busDeviceInfo.getString(i)); String username = (String) (parseObject.get("username")); }