今天在写代码的时候,循环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` 的 `toJava
List` 方法将 `
JSONArray`
转成 `
List` 对象
集合。示例如下:
```java
import com.alibaba.
fastjson.
JSONArray;
import com.alibaba.
fastjson.
JSONObject;
import java.util.
List;
public class
JsonArrayTo
ListExample {
public static void main(String[] args) {
String
jsonStr = "[{\"id\":1,\"name\":\"Alice\"},{\"id\":2,\"name\":\"Bob\"}]";
JSONArray jsonArray =
JSONArray.parse
Array(
jsonStr);
// 将
JSONArray 转成
List
List<User> user
List =
jsonArray.toJava
List(User.class);
for (User user : user
List) {
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的数组中