Java 语言 ArrayList 和 JSONArray 相互转换

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‘}

原文地址:https://www.cnblogs.com/miracle-luna/p/11143702.html

时间: 2024-10-11 05:10:38

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

Java语言实现通过Ajax抓取后台数据及图片

1.Java语言实现通过Ajax抓取后台数据及图片信息 1.1数据库设计 create table picture( pic_id number not null, pic_name varchar(200)not null, pic_url varchar2(200) not null, pic_descp varchar2(200) not null, pic_price varchar2(200) not null ) insert into picture values(1 ,'小米5s

02 java语言基础

常量:字面值常量(字符串,字符,整数,小数,布尔,null),自定义常量,''这个不是字符常量,""这个是字符串常量 进制: 02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 字符串常量 用双引号括起来的内容 整数常量 所有整数 小数常量 所有小数 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 布尔常量 较为特

java语言的特性及应用

java语言定义: Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言. Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网,同时拥有全球最大的开发者专业社群. 组成: Java由四方面组成:●Java编程语言,即语法.●Java文件格式,即各种文件夹.文件的后缀.●Java虚拟机(JVM),即处理*.class文件的解释器.●Java应用程序接口(Java API). Java分为三个体系,分别为Java

Java语言进阶过程(转)

[以下肯定是不完整的列表,欢迎补充] Java是一个通用的编程语言,其实可以干很多事,怎么学Java就看怎么用了. 但有一些一般的步骤: 1. 熟悉一种文本编辑器,比如Vim, Emacs, Notepad++, TextMate等.知道哪些是开源的,哪些是闭源的,哪些要收费.养成不用盗版软件的习惯. 2. 安装JDK(建议用你的Linux发行版自带的软件包管理器安装openjdk,过程中可能需要读发行版特定的文档) 3. 写一个Java的Hello world程序,并用命令行工具javac编译

初涉java库--ArrayList

我的车就差一个轮子啦,造好轮子,我就飞上天与太阳肩并肩啦,想想都激动.什么你要自己造轮子,是不是傻,商店里不都是别人造好的吗,又好又方便,只需一点money,你没有money,那你只能做个安静的美男子啦.幸运的是编程世界中的轮子不需要money,今天就来看看如何调用库中的轮子. 今天的内容: 一.修改bug 这篇博客是接着上篇的,没有看的,请点击此出查看:上一篇随笔 现在揭示那个程序的最大的bug: 看测试代码,你可能已经猜到啦.看结果: 没错,你可以连续猜同一个位置来过关,看看哪里错啦,肯定是

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

近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台.现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能.对自己或身边开发人员,对java语言更熟悉,为了后期维护打算采用java写一个这样的平台.另外白盒代码安全扫描也有Fortify等收费软件,或依赖PMD做代码分析,不过比如新增了什么安全问题,需要自定义或扩展就比较麻烦. 比如一个简单的:现在用struts2存在漏洞,现在需要升级到2.3.28版本,于

Java 语言结构【转】

Java 语言结构 基础:包(Package).类(Class)和对象(Object) 了解 Java 的包(Package).类(Class)和对象(Object)这些基础术语是非常重要的,这部分内容将概要的介绍这些术语. 包(Package) Java 使用包来组织类,通常按照业务逻辑将类分组到不同的包中.比如:应用程序的所有图形界面可能被分组到 com.vogella.webapplication.views 包中. 通常的做法是使用公司域名的倒序作为顶层包,比如:公司的域名是 "4byt

Java语言的基础知识12

第十四章(使用集合类保存对象) 1.java中得集合对象就像是一个容器,它用来存放Java类的对象.Java中的集合类有些方便存入和取出,有些则方便查找.集合类和数组的区别是,数组的长度是固定的,集合的长度是可变的,数组用来存放基本类型,集合用来存放对象的引用.常用的集合类有List集合,Set集合,和Map集合. 2.List集合包括List接口以及List接口的所有实现类.List集合中的元素许重复,个元素的顺序就是对象插入的顺序.类似java中的数组.List类继承了Collection接

Java语言的基础知识9

第十一章(线程) 1.通过String name=Thread.currentThread().getName();来获取当前线程的名称. 2.多次启动一个线程或者启动一个已经运行的线程是非法的,会抛出IllegalThreadStateException异常对象. Thread.sleep((int)Math.random()*10000); 3.java提供了Runnable接口使继承了其他类之后同样可以实现该接口达到创建线程的目的Runabble接口同样定义了Run方法. 实现Runnab