Java 语言 ArrayList 和 JSONArray 相互转换

本篇主要讲解 ArrayList 和 fastjson 中的 JSONArray相互转换的几种常用方式,以实体类 Student.java 举例说明。


Student 实体类

/**
* @author Miracle Luna
* @version 1.0
* @date 2019/7/5 18:06
*/
public class Student {
private String name; // 姓名
private Integer age; // 年龄
private String gender; // 性别 public Student(String name, Integer age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public String getGender() {
return gender;
} public void setGender(String gender) {
this.gender = gender;
} @Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}

ArrayList 转成 JSONArray

简单总结了 6 种 方法(推荐 第5、6种),代码如下:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import java.util.ArrayList; /**
* @author Miracle Luna
* @version 1.0
* @date 2019/7/5 17:43
*/
public class ArrayListToJSONArray {
public static void main(String[] args) {
ArrayList<Student> studentList = new ArrayList<Student>();
JSONArray studentJsonArray = new JSONArray(); Student John = new Student("John", 16,"boy");
Student Lily = new Student("Lily", 17, "girl");
Student Jack = new Student("Jack", 18, "boy"); studentList.add(John);
studentList.add(Lily);
studentList.add(Jack); System.out.println("=============== studentList info ================");
System.out.println(studentList.toString()); // 方式 1
studentJsonArray = JSON.parseArray(JSONObject.toJSONString(studentList));
System.out.println("\n方式 1: " + studentJsonArray.toJSONString()); // 方式 2
studentJsonArray = JSON.parseArray(JSON.toJSONString(studentList));
System.out.println("\n方式 2: " + studentJsonArray.toJSONString()); // 方式 3
studentJsonArray = JSONObject.parseArray(JSONObject.toJSONString(studentList));
System.out.println("\n方式 3: " + studentJsonArray.toJSONString()); // 方式 4
studentJsonArray = JSONObject.parseArray(JSON.toJSONString(studentList));
System.out.println("\n方式 4: " + studentJsonArray.toJSONString()); // 方式 5
studentJsonArray = JSONArray.parseArray(JSONObject.toJSONString(studentList));
System.out.println("\n方式 5: " + studentJsonArray.toJSONString()); // 方式 6
studentJsonArray = JSONArray.parseArray(JSON.toJSONString(studentList));
System.out.println("\n方式 6: " + studentJsonArray.toJSONString()); System.out.println("\n============== Lambda 表达式 遍历 JSONArray ============");
studentJsonArray.forEach(student -> System.out.println("student info: " + student));
}
}

执行结果如下:

=============== studentList info ================
[Student{name='John', age=16, gender='boy'}, Student{name='Lily', age=17, gender='girl'}, Student{name='Jack', age=18, gender='boy'}] 方式 1: [{"gender":"boy","name":"John","age":16},{"gender":"girl","name":"Lily","age":17},{"gender":"boy","name":"Jack","age":18}] 方式 2: [{"gender":"boy","name":"John","age":16},{"gender":"girl","name":"Lily","age":17},{"gender":"boy","name":"Jack","age":18}] 方式 3: [{"gender":"boy","name":"John","age":16},{"gender":"girl","name":"Lily","age":17},{"gender":"boy","name":"Jack","age":18}] 方式 4: [{"gender":"boy","name":"John","age":16},{"gender":"girl","name":"Lily","age":17},{"gender":"boy","name":"Jack","age":18}] 方式 5: [{"gender":"boy","name":"John","age":16},{"gender":"girl","name":"Lily","age":17},{"gender":"boy","name":"Jack","age":18}] 方式 6: [{"gender":"boy","name":"John","age":16},{"gender":"girl","name":"Lily","age":17},{"gender":"boy","name":"Jack","age":18}] ============== Lambda 表达式 遍历 JSONArray ============
student info: {"gender":"boy","name":"John","age":16}
student info: {"gender":"girl","name":"Lily","age":17}
student info: {"gender":"boy","name":"Jack","age":18}

JSONArray 转成 ArrayList

简单总结了 7 种 方法(推荐前 4种),代码如下:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import java.util.*; /**
* @author Miracle Luna
* @version 1.0
* @date 2019/7/5 18:36
*/
public class JSONArrayToArrayList {
public static void main(String[] args) {
JSONArray studentJSONArray = new JSONArray();
List<Student> studentList = new ArrayList<Student>(); Map<String, Object> JohnMap = new HashMap<String, Object>();
JohnMap.put("name", "John");
JohnMap.put("age", 16);
JohnMap.put("gender", "boy");
JSONObject John = new JSONObject(JohnMap); Map<String, Object> LilyMap = new HashMap<String, Object>();
LilyMap.put("name", "Lily");
LilyMap.put("age", 17);
LilyMap.put("gender", "girl");
JSONObject Lily = new JSONObject(LilyMap); Map<String, Object> JackMap = new HashMap<String, Object>();
JackMap.put("name", "Jack");
JackMap.put("age", 18);
JackMap.put("gender", "boy");
JSONObject Jack = new JSONObject(JackMap); studentJSONArray.add(John);
studentJSONArray.add(Lily);
studentJSONArray.add(Jack); System.out.println("\n=============== studentJSONArray info ================");
System.out.println(studentJSONArray); System.out.println("\n=============== JSONArray to ArrayList(方式 1) ================");
studentList = studentJSONArray.toJavaList(Student.class);
studentList.forEach(student -> System.out.println("stundet info: " + student)); System.out.println("\n=============== JSONArray to ArrayList(方式 2) ================");
studentList = JSON.parseArray(studentJSONArray.toJSONString(), Student.class);
studentList.forEach(student -> System.out.println("stundet info: " + student)); System.out.println("\n=============== JSONArray to ArrayList(方式 3) ================");
studentList = JSONObject.parseArray(studentJSONArray.toJSONString(), Student.class);
studentList.forEach(student -> System.out.println("stundet info: " + student)); System.out.println("\n=============== JSONArray to ArrayList(方式 4) ================");
studentList = JSONArray.parseArray(studentJSONArray.toJSONString(), Student.class);
studentList.forEach(student -> System.out.println("stundet info: " + student)); System.out.println("\n=============== JSONArray to ArrayList(方式 5) ================");
final ArrayList<Student> tmpList = new ArrayList<Student>();
studentJSONArray.forEach(studentJson -> {
JSONObject jsonObject = (JSONObject)studentJson;
Student student = new Student(jsonObject.getString("name"), jsonObject.getInteger("age"), jsonObject.getString("gender"));
tmpList.add(student);
}); studentList = tmpList;
studentList.forEach(student -> System.out.println("stundet info: " + student)); System.out.println("\n=============== JSONArray to ArrayList(方式 6) ================");
studentList.clear();
for (Object object : studentJSONArray) {
JSONObject jsonObject = (JSONObject)object;
Student student = new Student(jsonObject.getString("name"), jsonObject.getInteger("age"), jsonObject.getString("gender"));
studentList.add(student);
}
studentList.forEach(student -> System.out.println("stundet info: " + student)); System.out.println("\n=============== JSONArray to ArrayList(方式 7) ================");
studentList.clear();
for (int i = 0; i < studentJSONArray.size(); i++) {
JSONObject jsonObject = (JSONObject)studentJSONArray.get(i);
Student student = new Student(jsonObject.getString("name"), jsonObject.getInteger("age"), jsonObject.getString("gender"));
studentList.add(student);
}
studentList.forEach(student -> System.out.println("stundet info: " + student));
}
}

执行结果如下:

=============== studentJSONArray info ================
[{"gender":"boy","name":"John","age":16},{"gender":"girl","name":"Lily","age":17},{"gender":"boy","name":"Jack","age":18}] =============== JSONArray to ArrayList(方式 1) ================
stundet info: Student{name='John', age=16, gender='boy'}
stundet info: Student{name='Lily', age=17, gender='girl'}
stundet info: Student{name='Jack', age=18, gender='boy'} =============== JSONArray to ArrayList(方式 2) ================
stundet info: Student{name='John', age=16, gender='boy'}
stundet info: Student{name='Lily', age=17, gender='girl'}
stundet info: Student{name='Jack', age=18, gender='boy'} =============== JSONArray to ArrayList(方式 3) ================
stundet info: Student{name='John', age=16, gender='boy'}
stundet info: Student{name='Lily', age=17, gender='girl'}
stundet info: Student{name='Jack', age=18, gender='boy'} =============== JSONArray to ArrayList(方式 4) ================
stundet info: Student{name='John', age=16, gender='boy'}
stundet info: Student{name='Lily', age=17, gender='girl'}
stundet info: Student{name='Jack', age=18, gender='boy'} =============== JSONArray to ArrayList(方式 5) ================
stundet info: Student{name='John', age=16, gender='boy'}
stundet info: Student{name='Lily', age=17, gender='girl'}
stundet info: Student{name='Jack', age=18, gender='boy'} =============== JSONArray to ArrayList(方式 6) ================
stundet info: Student{name='John', age=16, gender='boy'}
stundet info: Student{name='Lily', age=17, gender='girl'}
stundet info: Student{name='Jack', age=18, gender='boy'} =============== JSONArray to ArrayList(方式 7) ================
stundet info: Student{name='John', age=16, gender='boy'}
stundet info: Student{name='Lily', age=17, gender='girl'}
stundet info: Student{name='Jack', age=18, gender='boy'}

Java 语言 ArrayList 和 JSONArray 相互转换的更多相关文章

  1. Java语言 List 和 Array 相互转换

    Java语言 List 和 Array 相互转换 List集合 转换为 Array数组 List集合 转换成 Array数组,有 2 种方式,代码如下: import java.util.ArrayL ...

  2. Java ArrayList 数组之间相互转换

    做研发的朋友都知道,在项目开发中经常会碰到list与数组类型之间的相互转换,本文通过一个简单的例子给大家讲解具有转换过程. package test.test1; import java.util.A ...

  3. JAVA语言搭建白盒静态代码、黑盒网站插件式自动化安全审计平台

    近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台.现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能.对 ...

  4. 瘋耔java语言笔记

    一◐ java概述                                                                                        1.1 ...

  5. 初涉java库--ArrayList

    我的车就差一个轮子啦,造好轮子,我就飞上天与太阳肩并肩啦,想想都激动.什么你要自己造轮子,是不是傻,商店里不都是别人造好的吗,又好又方便,只需一点money,你没有money,那你只能做个安静的美男子 ...

  6. 用java语言实现事件委托模式

    http://blog.csdn.net/yanshujun/article/details/6494447 用java语言实现事件委托模式 2010-04-27 00:04 2206人阅读 评论(1 ...

  7. Java语言速览:StackOverflow

    关于 java Java(请不要与 JavaScript 搞混)是一种设计为与 Java 虚拟机 (JVM) 一起使用的多用途编程语言.一般将安装了相关工具可以开发并运行 Java 程序的电脑系统称为 ...

  8. Java语言与JVM中的Lambda表达式全解

    Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,本文是2012年度最后一期Java Magazine中的一篇文章,它介绍了Lamdba的设计初衷,应用场景与基本语法. ...

  9. Java 语言的 XPath API

    如果要告诉别人买一加仑牛奶,您会怎么说?"请去买一加仑牛奶回来" 还是 "从前门出去,向左转,走三个街区向右转,再走半个街区向右转进入商店.走向四号通道,沿通道走五米向左 ...

随机推荐

  1. ros python 四元数 转 欧拉角

    import sysimport math w = -0.99114048481x = -0.00530699081719y = 0.00178255140781z = -0.133612662554 ...

  2. 利用layer制作好看的弹出框

    一.下载layer http://layer.layui.com/ 二.效果图 三.代码 <!DOCTYPE html> <html lang="en"> ...

  3. Synchronized 原理

    1.同步代码块: 反编译结果: monitorenter : 每个对象有一个监视器锁(monitor).当monitor被占用时就会处于锁定状态,线程执行monitorenter指令时尝试获取moni ...

  4. python何时用list,dict,set

    从读取的角度来讲: 看是用来随机读取(查询)还是连续读取. list数组集中存放,连续读取效率高(具体还没测试,理论上应该如此). dict散列表,使用hash计算存放的位置,随机读取效率高. 随机读 ...

  5. 在不切换分支的情况下,如何在all branches中快速查看指定分支,相对其他分支的状态

    假设需要查看的分支为temp 1.git show temp 通过这个可以拿到commit id 2.查看TortoiseGit的日志,左下角勾选所有分支 3.在日志界面搜索commit id,然后右 ...

  6. P1964 【mc生存】卖东西

    P1964 [mc生存]卖东西 题解 很简单, 暴力 注意一个小点就好 代码 #include<iostream> #include<cstdio> #include<c ...

  7. C++在线编程网站

    1.推荐 http://www.dooccn.com/cpp/ 2.https://wandbox.org/ 3.https://www.tutorialspoint.com/compile_cpp_ ...

  8. [webpack]深入学习webpack核心模块tapable

    一.手动实现同步钩子函数 1.SyncHook class SyncHook { // 钩子是同步的 constructor(args){ this.tasks = []; } tap(name,ta ...

  9. SSH工具登录远程指定节点时输入用户名密码方式【我】

    通过堡垒机部署项目, 一种方式:先把补丁传到接入机,然后用CRT等命令行工具登录指定接入机,然后用SCP命令把 补丁传到 生产服务器,比如 scp -P90010 /app/backup/packet ...

  10. Mybase解决保存文件后再打开不能修改编辑

    1.问题复现 2.解决方式 3.可以修改编辑