java工具:《List<User>转jsonArray》
【摘要】 java工具:《List<User>转jsonArray》

@[toc]
一、介绍
这段代码演示了使用阿里巴巴 Fastjson 库将 Java 对象列表转换为 JSONArray 的正确方法,并特别指出了常见的错误写法。
首先创建了一个包含多个 User 对象的 List 列表。代码重点展示了两种转换方式:
- 错误写法:直接调用 list.toString() 后使用 JSONArray.parseArray() 解析,由于 List.toString() 输出格式不是标准 JSON 格式,会抛出解析异常
- 正确写法:先通过 JSONObject.toJSONString(list) 将列表序列化为标准 JSON 字符串,再使用 JSONArray.parseArray() 解析为 JSONArray
同时注释中还提供了另一种正确方式:手动遍历列表,创建 JSONObject 并逐个添加到 JSONArray 中。
二、代码
@Test
public void listConverjJsonArray(){
List<User> list = new ArrayList<>();
list.add(new User(1, "a"));
list.add(new User(2, "b"));
//错误写法,因为list.toString()输出[User(id=1, name=a), User(id=2, name=b)]。这东西无法json解析,会报错:com.alibaba.fastjson.JSONException: syntax error, pos 2, line 1, column 3[User(id=1, name=a), User(id=2, name=b)]
// JSONArray jsonArray =JSONArray.parseArray(list.toString());
//正确写法,简写方式
JSONArray jsonArray =JSONArray.parseArray(JSONObject.toJSONString(list));
//正确写法,复杂方式
// JSONArray jsonArray = new JSONArray();
// JSONObject jsonObject = null;
// for (User user: list) {
// jsonObject = new JSONObject();
// jsonObject.put("id", user.getId());
// jsonObject.put("name", user.getName());
// jsonArray.add(jsonObject);
// }
System.out.println(jsonArray);
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)