快速获取json字段内的数据(减去填写字段的步骤)
2016-01-19 11:16
651 查看
有的时候后台很好,把一些需要的一些字段全部封装好的jar包,给我,那样我就无需去写字段,我所要做的就是请求数据,然后根据给的jar包内的字段set进入即可。
而有的时候没有这样情况,更多的是直接请求,自己写bean或HashMap等,那样的话有的时候字段比较少,还好说,但是一旦字段超多,那么一个一个填写超级恶心了,
所以有如下方法(采用HashMap键值对的形式来保存获取到的字段里面的数据)。以后台传给的字段作为key值。例如下面的一段json{
"apiVersion": "1.0",
"code": "0000",
"functionCode": "product.list",
"isSuccess": true,
"message": "成功",
"record": [
{
"brandName": "嘉实多",
"categoryName": "机油",
"disPrice": 320,
"id": 22,
"inPrice": 320,
"normalPrice": 350,
"productAlias": "CB",
"productCode": "10",
"productName": "嘉实多大力士CH-4 18L",
"productPic": "/epeit/20150712/default/fd1f4ce271204c1eba7610b43ad5531c.jpg",
"productTag": "CB-18",
"productVolume": 1,
"promotionStock": 0,
"saleNum": 971,
"stock": 42,
"unit": "桶",
"vipPrice": 310
}
],
"total": 37
}
字段如此之多,我主要的需要部分是record内的数据,所以有
JSONArray object_i = objectproductlist.getJSONArray("record");
for (int i = 0; i < object_i.length(); i++) {
HashMap<String, String> hashmap = new HashMap<String, String>();//保存object_i集合内的一个object
JSONObject jsonObject = object_i.getJSONObject(i);
Iterator<String> keys = jsonObject.keys();//key值
while (keys.hasNext()) {
String key = keys.next();// 获取key值
hashmap.put(key, jsonObject.optString(key));//保存某个key下的数据
}
productlist.add(hashmap);//保存record下的所有objcet(map)
}
如此就省去了写key值得步骤
而有的时候没有这样情况,更多的是直接请求,自己写bean或HashMap等,那样的话有的时候字段比较少,还好说,但是一旦字段超多,那么一个一个填写超级恶心了,
所以有如下方法(采用HashMap键值对的形式来保存获取到的字段里面的数据)。以后台传给的字段作为key值。例如下面的一段json{
"apiVersion": "1.0",
"code": "0000",
"functionCode": "product.list",
"isSuccess": true,
"message": "成功",
"record": [
{
"brandName": "嘉实多",
"categoryName": "机油",
"disPrice": 320,
"id": 22,
"inPrice": 320,
"normalPrice": 350,
"productAlias": "CB",
"productCode": "10",
"productName": "嘉实多大力士CH-4 18L",
"productPic": "/epeit/20150712/default/fd1f4ce271204c1eba7610b43ad5531c.jpg",
"productTag": "CB-18",
"productVolume": 1,
"promotionStock": 0,
"saleNum": 971,
"stock": 42,
"unit": "桶",
"vipPrice": 310
}
],
"total": 37
}
字段如此之多,我主要的需要部分是record内的数据,所以有
JSONArray object_i = objectproductlist.getJSONArray("record");
for (int i = 0; i < object_i.length(); i++) {
HashMap<String, String> hashmap = new HashMap<String, String>();//保存object_i集合内的一个object
JSONObject jsonObject = object_i.getJSONObject(i);
Iterator<String> keys = jsonObject.keys();//key值
while (keys.hasNext()) {
String key = keys.next();// 获取key值
hashmap.put(key, jsonObject.optString(key));//保存某个key下的数据
}
productlist.add(hashmap);//保存record下的所有objcet(map)
}
如此就省去了写key值得步骤
相关文章推荐
- jsp:include 导入一个action
- Json学习
- 详解JavaScript对象序列化
- 浅谈 JS对数值处理的5个API
- java正则表达式学习总结,以及和javascript正则表达式的区别
- 学习JavaScript设计模式之单例模式
- Cesium之3D拉伸显示行政区含GeoJSON数据生成过程GDAL的ogr2ogr
- js操作select option
- jsp内置对象学习记录
- jsp判断是否存在List
- JSP页面选择显示(通过和script嵌入作用)
- 导入的js文件报错,很奇怪
- JavaScript DOM 一
- Angular.js中的$injector服务
- js乘除法的一个bug解决的问题
- angular js 事件
- 判断js对象的数据类型,有没有一个最完美的方法?
- JSONOjbect,对各种属性的处理
- javascript的学习路子
- JSTL中c:set标签的用法