黑马程序员技术交流社区
标题:
关于json数据的读取
[打印本页]
作者:
大菠萝
时间:
2015-7-3 23:58
标题:
关于json数据的读取
:{
"response": {
"data": [
{
"address": "南京市游乐园",
"province": "江苏",
"district": "玄武区",
"city": "南京"
}
]
"datas": [
{
"address": "北京市游乐园",
"province": "北京",
"district": "海淀区",
"city": "北京"
}
]
},
"status": "ok"
}
我要读 datas 中的 district 的值,怎么写?
作者:
qq496099229
时间:
2015-7-3 23:58
JSONObject dataJson=new JSONObject("你的Json数据“); JSONObject response=dataJson.getJSONObject("response"); JSONArray data=response.getJSONArray("data"); JSONObject info=data.getJSONObject(0); String province=info.getString("province"); String city=info.getString("city"); String district=info.getString("district"); String address=info.getString("address"); System.out.println(province+city+district+address);
作者:
Morgan
时间:
2015-7-4 13:07
本帖最后由 Morgan 于 2015-7-4 14:41 编辑
首先,“datas”少了逗号,加上后才是正确的json数据。
废话不多说:直接上代码:
最外面的大括号{}解析
String jsonStr="要解析的json语句";
try
{
//如果是java,首先要加入一个jar包 json-lib-2.4-jdk15.jarr包
JSONObject jsonObject=new JSONObject(jsonStr);//1.第一层, 最外面{}实体
JSONObject responseObject=jsonObject.getJSONObject("response");//2.第二层 response {}实体
//responseObject下有两个元素,data和datas两个数组
//解析第二个数组datas
JSONArray array=responseObject.getJSONArray("datas");//第三次 Array[]数组
//拿到datas中每一个元素---遍历数组中的每一个元素
for (int i = 0; i < array.length(); i++)
{
//拿到的元素实体
JSONObject object=array.getJSONObject(i);//第四层 每一个实体{}
//获取实体中的字符串---district
String district=object.getString("district");// 第五层 这里就拿到了实体中每一个字符串
}
/**
*网上类似json解析的资源很多,简单的搜一下就可以很轻松的解决。
*推荐教程连接:<a target="_blank">http://www.open-open.com/lib/view/open1326376799874.html</a>
*/
} catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
复制代码
//
希望可以帮助到你
作者:
Morgan
时间:
2015-7-4 13:11
正确的json格式是这样的:
{
"response": {
"data": [
{
"address": "南京市游乐园",
"province": "江苏",
"district": "玄武区",
"city": "南京"
}
],
"datas": [
{
"address": "北京市游乐园",
"province": "北京",
"district": "海淀区",
"city": "北京"
}
]
},
"status": "ok"
}
复制代码
作者:
a80194367
时间:
2015-7-5 08:04
来这是学习的,不用打赏
作者:
chytth
时间:
2015-7-6 22:10
注意:{}里面的为JsonObject对象,[ ]里为JsonArry数组。
读取分别使用:JSONObject response=dataJson.getJSONObject("response");
JSONArray data=response.getJSONArray("data");
读取datas即为:String district=data.getJSONObject(0).getString("district");
作者:
Jackron
时间:
2015-7-6 23:16
是定义了一个对象response={ …… }
import net.sf.json.JSONObject;
JSONObject jsonObject=JSONObject.fromObject(response);
System.out.println(jsonObject(0).get("district"));
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2