FastJson中jsonArray转换成list集合
2018-02-06 14:56
537 查看
今天在写代码的时候,循环list集合数据,原本是使用for语句,但是jdk8中的lambda表达式中的list.forEach(action)更加能表达出循环的意义,也就是业务逻辑,所以就对原先的代码进行了改造。
先附上数据格式:
原来要循环saleDetails数组格式的数据,JSONArray saleDetails = erpSaleDataJSON.getJSONArray("saleDetails");
取出来的是JSONArray,再用lambda表达式中的list.forEach(action)处理的时候,发现list.forEach(saleDetailObject ->{})
里面的saleDetailObject是object类型的,并不是JSONObject类型的,就不好取到对象里面的属性,刚开始想法是直接在定义
list.forEach(saleDetailObject -> {})的时候把saleDetailObject直接强制转成JSONObject类型,但是发现并不可以,所以只能
多写一两步。
第一步:先获取jsonArray数组
最后就可以使用list.forEach(saleDetailObject -> {})来处理自己的业务逻辑了。
先附上数据格式:
{ "data": { "ERPSaleData": { "cashier": "15862957096", "custId": 96, "deviceType": 2, "flagDiscount": 0, "membFlag": 0, "returnReason": "现金正常退款", "orderType": 1, "oriAmount": 200, "payType1": 0, "receiveAmount": 200, "saleDetails": [{ "goodsAmount": 200, "goodsId": "9696150156975187161887", "goodsName": "储物柜", "goodsNum": 1, "goodsPrice": 100 }, { "goodsAmount": 200, "goodsId": "9696150156975187161888", "goodsName": "文具", "goodsNum": 1, "goodsPrice": 100 }], "type1Amount": "200", "rootId":166, "mac":"fef5b0f5eb63dd9889933533628d9ca0", "uuid":"8d1fc351-ddfb-4564-889c-8eb68ee1d751", "onsitetime":"2018-02-05 10:07:37" } } }
原来要循环saleDetails数组格式的数据,JSONArray saleDetails = erpSaleDataJSON.getJSONArray("saleDetails");
取出来的是JSONArray,再用lambda表达式中的list.forEach(action)处理的时候,发现list.forEach(saleDetailObject ->{})
里面的saleDetailObject是object类型的,并不是JSONObject类型的,就不好取到对象里面的属性,刚开始想法是直接在定义
list.forEach(saleDetailObject -> {})的时候把saleDetailObject直接强制转成JSONObject类型,但是发现并不可以,所以只能
多写一两步。
第一步:先获取jsonArray数组
SONArray saleDetails = erpSaleDataJSON.getJSONArray("saleDetails");第二步:将数组转换成字符串
String js = JSONObject.toJSONString(saleDetails,SerializerFeature.WriteClassName);第三步:将字符串转换成List集合
List<JSONObject> list = JSONObject.parseArray(js,JSONObject.class);当然也可以直接换成相对应的List<JavaBean>格式。
最后就可以使用list.forEach(saleDetailObject -> {})来处理自己的业务逻辑了。
相关文章推荐
- 关于FastJson中jsonArray转换成list集合的方法
- 关于FastJson中jsonArray转换成list集合的方法
- 如何利用fastjson将JSONArray转换成List<?>?
- Fastjson将list集合转换成json串返回给前台页面
- JAVA WEB 将后台传过来的jsonArray 数据转换为list集合
- FastJson 将JSONArray转换为List
- [javase][json]fastJson在java后台转换json格式数据探究--处理数组/List/Map
- JSON--List集合转换成JSON对象
- JSONArray json = JSONArray.fromObject(list_excel); list类型数据转换成JSONArray类型数据报错
- json <--->List集合,实体类 之间的相互转换
- Java中Json字符串直接转换为对象(包括多层List集合)
- JSON转换类(二)--List转换成Json、对象集合转换Json等
- java中 set,list,array(集合与数组)相互转换
- FastJson的学习之JSON互相转Map集合,List集合,JavaBean
- 示例:将通过js获取的json字符串转换为Map、List集合(不太重要)
- Java中 set,list,array(集合与数组)、Map相互转换
- java操作<Map转换List——>list集合重新排序—>List集合转换成JSON>
- JSON转换包含Date日期属性的对象的List集合报错问题
- 如何通过Java代码将JsonArray转化为list集合
- fastjson list转JSONArray