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. 好久木来了,一直忙于项目(加懒惰),今天讲讲vuecli3.0的使用

    vue更新换代很快,马上vue都要出3.0了,这是一个巨大的变革,不过今天讲的是vuecli3.0,里面使用的vue仍然是2的,所有可以放心大胆使用. Vue CLI 是一个基于 Vue.js 进行快 ...

  2. shiro 配置注解异常 java.lang.ClassNotFoundException: org.aspectj.util.PartialOrder$PartialComparable

    解决方案: pom 文件添加: <!-- 解决shiro注解(shiro 使用 aop) --> <dependency> <groupId>aspectj< ...

  3. VM 虚拟机 CentOS 7 设置 桥接网络

    桥接网络的设置:   安装时设置网络为桥接网络!   找到 ip 地址,设置如下   注意ip地址并不是一样的,用以区分   然后在关闭 windows 防火墙,打开 cmd 使用 ping 命令 O ...

  4. nmon服务器性能结果报告分析

    一.nmon命令 ./nmon_x86_64_centos7 -f -s 10 -c 60 -m ./log/  命令的含义是: -f :按标准格式输出文件名称:<hostname>_YY ...

  5. PHP 连接本地mysql

    <?php echo microtime(true); ?> <?php $servername = "localhost"; $username = " ...

  6. Visual C++ 6.0精简绿色版下载及简单使用教程

    Visual C++ 6.0精简绿色版下载及简单使用教程 Microsoft Visual C++简介 Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用来创建 ...

  7. IOS开发环境

    当我们需要帮一些人学习IOS的时候,可以翻阅下这篇文章,我有个同学对IOS开发不太了解,用语言描述该怎么做的时候显得不够具体,或者全部需要我帮忙操作,又会占用我们的时间,如果每个人都这么要求的话,那么 ...

  8. java打jar包与找不到依赖包详解

    eclipse打jar包与找不到依赖包详解 eclipse打工具jar 1.项目右键-->export -->搜索java 2.选择JAR file 3.打包 eclipse打包可执行ja ...

  9. OpenVirtex安装

    目录 环境 安装 环境 我使用的java以及maven版本如下: jdk7下载地址:https://www.oracle.com/technetwork/java/javase/downloads/j ...

  10. struts2之Action与JSP相互数据传递

    package com.loaderman.crm.action; import com.loaderman.crm.entity.User; import com.loaderman.crm.ser ...