今天在写代码的时候,循环list集合数据,原本是使用for语句,但是jdk8中的lambda表达式中的list.forEach(action)更加能表达出循环的意义,也就是业务逻辑,所以就对原先的代码进行了改造。

先附上数据格式:

"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 -> {})来处理自己的业务逻辑了。

今天在写代码的时候,循环list集合数据,原本是使用for语句,但是jdk8中的lambda表达式中的list.forEach(action)更加能表达出循环的意义,也就是业务逻辑,所以就对原先的代码进行了改造。 先附上数据格式: { "data": { "ERPSaleData": { "cashier": "15862957096", "custId": 96,
是项目的重要升级,目标是为下一个十年提供一个高性能的库。根据官方给出的性能来看,相比v1版本,确实有了很大的提升,本篇文章我们来看下究竟做了哪些事情,使得性能有了大幅度的提升。本篇将采用 + 的方式对FastJson2的性能提升做一个较为全面的探索。首先,我们搭建一套用于测试的环境,这里采用springboot项目,分别创建两个module:和。使用两个版本进行对比试验。代码结构如下所示:在父pom当引入一些我们需要使用的公共依赖,这里为了简便,使用了 在fastjson引入fastjson的依赖
第三步:将数组转换成字符串: JSONObject.toJSONString(jsonArray数组, SerializerFeature.WriteClassName); 第四步:将字符串成li...
fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 Maven <!-- json --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version.
日常开发的时候,相信大部分同学不是在调用接口,就是在调用接口的路上,那么关于调用接口之后返回的数据,也会有多种的不同的处理情况,今天就分享一个遇到调用接口之后需要其的一个数据list的情况 以下是本文目录大纲: 1.接口端的数据 2.化格式 接口端数据返回 调用http接口 返回数据类型是String public static void main(String[] args) {
在web开发,常常会遇到上传文件的需求,比如上传视频和图片,之前做上传功能的时候,就是使用IO流来操作,这种需要熟悉IO各种输入输出流,当然本人还是希望开发能对IO进行深度学习,如果掌握了,不妨可以尝试使用transferTo()来进行文件的上传操作。 前端页面写法(form表单提交):
      我们知道多线程是通过star()方法让线程处于准备就绪状态,而实际运行的业务逻辑是放在run()方法体的,但是run()方法是没有参数的方法,实际的业务场景,我们可能需要向方法体传递参数,下面介绍常用的两种传参方式,第三种下次再说,或者你们百度吧,这里偷个懒。       第一种方式:构造方法传参 public class CallbackCustomerTypeThrea...
后来排查解决了,现把可能出现的几种原因列出如下: 1.try语句不可能抛出异常或者不可能抛出某一种异常,但是却用catch捕获该类型的异常了,这种情况就会报不能抛出异常错误XxxException 2.try语句抛出的异常(暂时没想好总结语,欢迎大家给个建...
可以使用 `com.alibaba.fastjson.JSONArray` 的 `toJavaList` 方法将 `JSONArray` 成 `List` 对象集合。示例如下: ```java import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.List; public class JsonArrayToListExample { public static void main(String[] args) { String jsonStr = "[{\"id\":1,\"name\":\"Alice\"},{\"id\":2,\"name\":\"Bob\"}]"; JSONArray jsonArray = JSONArray.parseArray(jsonStr); // 将 JSONArray List List<User> userList = jsonArray.toJavaList(User.class); for (User user : userList) { System.out.println(user.getId() + " " + user.getName()); public static class User { private int id; private String name; // getter 和 setter 省略 public int getId() { return id; public void setId(int id) { this.id = id; public String getName() { return name; public void setName(String name) { this.name = name; 输出结果: 1 Alice 2 Bob 解决javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validati Java读取后缀名为json的文件,并把内容放到fastjson的数组中