java字符串数组转list实体集合

2 篇文章 0 订阅
2 篇文章 0 订阅

字符串数组转list实体集合

Resolved [com.alibaba.fastjson.JSONException: exepct ‘[’, but string, pos解决方法
首先需要导入json相关包,这里建议导入阿里巴巴的jar包

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.4</version>
</dependency>

String arr = "[{\"weicpid\":\"cp1688159650749289\",\"ckpinpai\":\"万胜\",\"ckxinhao\":\"ER3C\",\"ckdaima\":\"2121\",\"ckchudizhi\":\"\",\"ckoutmoney\":\"2\",\"cknumber\":\"2\",\"ckmoney\":\"4.000\",\"shui\":\"是\",\"ckshoudizhi\":\"客户华强广场Q1G31\",\"ckshouname\":\"刘先生\",\"ckshoutable\":\"18318838341\",\"ckdizhi\":\"广州市黄埔区茅岗环村大街39号2栋4楼自编A420房 \",\"ckwuliu\":\"\",\"ckhuo\":\"0\",\"ckhuoshuo\":\"\",\"ckqian\":\"0\",\"ckqianshuo\":\"\",\"ckdaozhang\":\"支付宝\",\"ckchutime\":\"2021-01-27\"},{\"weicpid\":\"cp1688159650749227\",\"ckpinpai\":\"松下\",\"ckxinhao\":\"CR2032\",\"ckdaima\":\"1212\",\"ckchudizhi\":\"\",\"ckoutmoney\":\"1\",\"cknumber\":\"1\",\"ckmoney\":\"1.000\",\"shui\":\"是\",\"ckshoudizhi\":\"客户华强广场Q1G31\",\"ckshouname\":\"刘先生\",\"ckshoutable\":\"18318838341\",\"ckdizhi\":\"广州市黄埔区茅岗环村大街39号2栋4楼自编A420房 \",\"ckwuliu\":\"\",\"ckhuo\":\"0\",\"ckhuoshuo\":\"\",\"ckqian\":\"0\",\"ckqianshuo\":\"\",\"ckdaozhang\":\"支付宝\",\"ckchutime\":\"2021-01-27\"}]";

String res = JSON.toJSON(arr).toString();
List<Chuku> list = JSONArray.parseArray(res,Chuku.class);//Chuku是实体类

注意:这里需要使用JSON.toJSON(arr).toString();若使用JSON.toJSON(arr);
List list = JSONArray.parseArray(res,Chuku.class);则会报如下错误

Resolved [com.alibaba.fastjson.JSONException: exepct '[', but string, pos
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
使用fastjson将json换为Java实体类的步骤如下: 1. 导入fastjson的依赖包。 ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.60</version> </dependency> ``` 2. 定义Java实体类,属性需要与json中的key相同。 ```java public class User { private String name; private int age; // getter和setter方法省略 } ``` 3. 调用fastjson的API将json字符串换为Java实体类。 ```java String jsonStr = "{\"name\":\"张三\",\"age\":20}"; User user = JSON.parseObject(jsonStr, User.class); ``` 其中,JSON.parseObject()方法用于将json字符串换为Java实体类,第一个参数为json字符串,第二个参数为Java实体类的Class对象。 4. 如果json字符串中有嵌套的对象或数组,需要在Java实体类中定义相应的嵌套对象或集合类型属性,并进行递归换。 例如,如果json字符串中包含一个嵌套的地址对象,可以在User类中定义一个Address类,并在User类中增加一个Address类型的属性: ```java public class Address { private String province; private String city; private String district; // getter和setter方法省略 } public class User { private String name; private int age; private Address address; // getter和setter方法省略 } ``` 然后可以按照如下方式进行换: ```java String jsonStr = "{\"name\":\"张三\",\"age\":20,\"address\":{\"province\":\"江苏\",\"city\":\"南京\",\"district\":\"鼓楼区\"}}"; User user = JSON.parseObject(jsonStr, User.class); ``` 如果json字符串中包含一个数组,可以在User类中定义一个List类型的属性,并在User类中增加一个getter和setter方法: ```java public class User { private String name; private int age; private List<String> hobbies; // getter和setter方法省略 } ``` 然后可以按照如下方式进行换: ```java String jsonStr = "{\"name\":\"张三\",\"age\":20,\"hobbies\":[\"篮球\",\"足球\",\"游泳\"]}"; User user = JSON.parseObject(jsonStr, User.class); ``` 以上就是使用fastjson将json字符串换为Java实体类的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dlei东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值