Alibaba JSONObject2.0.10的常用方法大全

在这里插入图片描述
在这里插入图片描述

package com.saas.demo;
 
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * jsonobject操作
 */
public class JSONObjectDemo {
    public static void main(String[] args) {
        //模拟数据,一个学生归属一个班级,一个学生有多位老师
        Classes classes = new Classes("小学二年级",30);
        List<Teacher> teacherList  = new ArrayList<>();
        for(int i=1;i<3;i++){
            teacherList.add(new Teacher("老师"+i,30+i));
        }
        Student student = new Student("小明",23,classes,teacherList);
        System.out.println("------------------------------------------------");
        //将对象转换成字符串
        String jsonStr = JSONObject.toJSONString(student);
        System.out.println("jsonStr:"+jsonStr);
        System.out.println("------------------------------------------------");
        //将字符串转换成对象
        Student newStudent = JSONObject.parseObject(jsonStr,Student.class);
        System.out.println("newStudent:"+newStudent);
    }
}
 
@Data
@AllArgsConstructor
class Student {
    //姓名
    private String name;
    //年龄
    private Integer age;
    //班级
    private Classes classes;
    //老师集合
    private List<Teacher> teacherList;
}
 
@Data
@AllArgsConstructor
class Classes {
    //名称
    private String name;
    //学生数量
    private Integer studentCount;
}
 
@Data
@AllArgsConstructor
class Teacher {
    //姓名
    private String name;
    //年龄
    private Integer age;
}

在这里插入图片描述

package com.saas.demo;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * jsonobject操作
 */
public class JSONObjectDemo {
    public static void main(String[] args) {
        //模拟数据,一个学生归属一个班级,一个学生有多位老师
        Classes classes = new Classes("小学二年级",30);
        List<Teacher> teacherList  = new ArrayList<>();
        for(int i=1;i<3;i++){
            teacherList.add(new Teacher("老师"+i,30+i));
        }
        Student student = new Student("小明",23,classes,teacherList);
        System.out.println("------------------------------------------------");
        //将对象转换成字符串
        String jsonStr = JSONObject.toJSONString(student);
        System.out.println("jsonStr:"+jsonStr);
        System.out.println("------------------------------------------------");
        //将字符串转换成JSONObject
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);
        System.out.println("jsonObject:"+jsonObject);
        System.out.println("------------------------------------------------");
    }
}
 
@Data
@AllArgsConstructor
class Student {
    //姓名
    private String name;
    //年龄
    private Integer age;
    //班级
    private Classes classes;
    //老师集合
    private List<Teacher> teacherList;
}
 
@Data
@AllArgsConstructor
class Classes {
    //名称
    private String name;
    //学生数量
    private Integer studentCount;
}
 
@Data
@AllArgsConstructor
class Teacher {
    //姓名
    private String name;
    //年龄
    private Integer age;
}

在这里插入图片描述

package com.saas.demo;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * jsonobject操作
 */
public class JSONObjectDemo {
    public static void main(String[] args) {
        //模拟数据,一个学生归属一个班级,一个学生有多位老师
        Classes classes = new Classes("小学二年级",30);
        List<Teacher> teacherList  = new ArrayList<>();
        for(int i=1;i<3;i++){
            teacherList.add(new Teacher("老师"+i,30+i));
        }
        Student student = new Student("小明",23,classes,teacherList);
        System.out.println("student:"+student);
        System.out.println("------------------------------------------------");
        //将对象转换成JSONObject
        JSONObject jsonObject = (JSONObject)JSONObject.toJSON(student);
        System.out.println("jsonObject:"+jsonObject);
        System.out.println("------------------------------------------------");
    }
}
 
@Data
@AllArgsConstructor
class Student {
    //姓名
    private String name;
    //年龄
    private Integer age;
    //班级
    private Classes classes;
    //老师集合
    private List<Teacher> teacherList;
}
 
@Data
@AllArgsConstructor
class Classes {
    //名称
    private String name;
    //学生数量
    private Integer studentCount;
}
 
@Data
@AllArgsConstructor
class Teacher {
    //姓名
    private String name;
    //年龄
    private Integer age;
}

在这里插入图片描述

package com.saas.demo;
 
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * jsonobject操作
 */
public class JSONObjectDemo {
    public static void main(String[] args) {
        //模拟数据,一个学生归属一个班级,一个学生有多位老师
        Classes classes = new Classes("小学二年级",30);
        List<Teacher> teacherList  = new ArrayList<>();
        for(int i=1;i<3;i++){
            teacherList.add(new Teacher("老师"+i,30+i));
        }
        Student student = new Student("小明",23,classes,teacherList);
        System.out.println("------------------------------------------------");
        //将对象转换成JSONObject
        JSONObject jsonObject = (JSONObject)JSONObject.toJSON(student);
        System.out.println("jsonObject:"+jsonObject);
        System.out.println("------------------------------------------------");
        //获取单个值
        String studentName = jsonObject.getString("name");
        System.out.println("studentName:"+studentName);
    }
}
 
@Data
@AllArgsConstructor
class Student {
    //姓名
    private String name;
    //年龄
    private Integer age;
    //班级
    private Classes classes;
    //老师集合
    private List<Teacher> teacherList;
}
 
@Data
@AllArgsConstructor
class Classes {
    //名称
    private String name;
    //学生数量
    private Integer studentCount;
}
 
@Data
@AllArgsConstructor
class Teacher {
    //姓名
    private String name;
    //年龄
    private Integer age;
}

在这里插入图片描述

package com.saas.demo;
 
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * jsonobject操作
 */
public class JSONObjectDemo {
    public static void main(String[] args) {
        //模拟数据,一个学生归属一个班级,一个学生有多位老师
        Classes classes = new Classes("小学二年级",30);
        List<Teacher> teacherList  = new ArrayList<>();
        for(int i=1;i<3;i++){
            teacherList.add(new Teacher("老师"+i,30+i));
        }
        Student student = new Student("小明",23,classes,teacherList);
        System.out.println("------------------------------------------------");
        //将对象转换成JSONObject
        JSONObject jsonObject = (JSONObject)JSONObject.toJSON(student);
        System.out.println("jsonObject:"+jsonObject);
        System.out.println("------------------------------------------------");
        //获取对象 方式一
        Classes newClasses = jsonObject.getObject("classes",Classes.class);
        System.out.println("studentName:"+newClasses);
        System.out.println("------------------------------------------------");
        //获取对象 方式二
        JSONObject  classesJson = jsonObject.getJSONObject("classes");
        System.out.println("classesJson:"+classesJson);
    }
}
 
@Data
@AllArgsConstructor
class Student {
    //姓名
    private String name;
    //年龄
    private Integer age;
    //班级
    private Classes classes;
    //老师集合
    private List<Teacher> teacherList;
}
 
@Data
@AllArgsConstructor
class Classes {
    //名称
    private String name;
    //学生数量
    private Integer studentCount;
}
 
@Data
@AllArgsConstructor
class Teacher {
    //姓名
    private String name;
    //年龄
    private Integer age;
}

在这里插入图片描述

package com.saas.demo;
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * jsonobject操作
 */
public class JSONObjectDemo {
    public static void main(String[] args) {
        //模拟数据,一个学生归属一个班级,一个学生有多位老师
        Classes classes = new Classes("小学二年级",30);
        List<Teacher> teacherList  = new ArrayList<>();
        for(int i=1;i<3;i++){
            teacherList.add(new Teacher("老师"+i,30+i));
        }
        Student student = new Student("小明",23,classes,teacherList);
        System.out.println("------------------------------------------------");
        //将对象转换成JSONObject
        JSONObject jsonObject = (JSONObject)JSONObject.toJSON(student);
        System.out.println("jsonObject:"+jsonObject);
        System.out.println("------------------------------------------------");
        //获取集合 方式一
        List<Teacher> newTeacherList = jsonObject.getObject("teacherList",List.class);
        System.out.println("newTeacherList:"+newTeacherList);
        System.out.println("------------------------------------------------");
        //获取集合 方式二
        JSONArray classesJsonArray = jsonObject.getJSONArray("teacherList");
        System.out.println("value:"+classesJsonArray);
        for(int j=0; j< classesJsonArray.size(); j++){
            JSONObject json = classesJsonArray.getJSONObject(j);
            String name = json.getString("name");
            Integer age = json.getInteger("age");
            System.out.println("name:"+name + " age:"+age);
        }
    }
}
 
@Data
@AllArgsConstructor
class Student {
    //姓名
    private String name;
    //年龄
    private Integer age;
    //班级
    private Classes classes;
    //老师集合
    private List<Teacher> teacherList;
}
 
@Data
@AllArgsConstructor
class Classes {
    //名称
    private String name;
    //学生数量
    private Integer studentCount;
}
 
@Data
@AllArgsConstructor
class Teacher {
    //姓名
    private String name;
    //年龄
    private Integer age;
}

alibaba.fastjson.JSONObject的使用

<dependencies>
    <dependency>
        <groupId>com.alibaba.fastjson2</groupId>
        <artifactId>fastjson2</artifactId>
        <version>2.0.26</version>
    </dependency>
</dependencie

在这里插入图片描述

String jsonStr = "{
    "costs": 78,
    "code": "200",
    "data": {
        "xNum": 17,
        "yNum": 7,
        "startX": 111.65,
        "startY": 26.9,
        "endX": 122.45,
        "endY": 31.2,
        "xRes": 0.049999714,
        "yRes": 0.05000019,
        "undefVal": -999999.0,
        "grid": [
            [
                7.53,
                7.71,
                7.88,
                7.99,
                8.36,
                8.51,
                8.42,
                2.66,
                3.01,
                7.39,
                3.62,
                3.8,
                3.97,
                3.97,
                4.18,
                9.71,
                4.61
            ],
            [
                2.89,
                2.81,
                2.5,
                2.56,
                2.62,
                2.72,
                2.8,
                3.37,
                3.82,
                3.89,
                3.93,
                3.98,
                4.02,
                4.04,
                4.05,
                4.45,
                4.53
            ]
        ],
        "otherGrids": [
            [
                [
                    9.712575,
                    4.239139,
                    0.9451491,
                    356.26706,
                    352.4416,
                    350.46017,
                    348.48987,
                    337.47943,
                    346.3337,
                    352.5385,
                    356.03848,
                    357.7395,
                    358.5571,
                    1.5871344,
                    1.6444033,
                    355.74615,
                    357.1376
                ],
                [
                    4.566014,
                    5.710593,
                    5.049166,
                    4.2612233,
                    3.494639,
                    4.851116,
                    4.304469,
                    356.9426,
                    357.45187,
                    358.67462,
                    357.95978,
                    357.26685,
                    357.72076,
                    358.5821,
                    359.15125,
                    358.06943,
                    357.85083
                ]
            ]
        ]
    }
}"
Object entity = JSONObject.parseObject("jsonStr", 类名.class); // 伪代码 将类名替换成自己根据json创建的实体类名即可

在这里插入图片描述
在这里插入图片描述

 JSONObject jsonObject = JSONObject.parseObject(jsonStr);
 JSONObject object = jsonObject.getJSONObject("data"); // 获取data
JSONArray grid = object.getJSONArray("grid"); // 获取 grid
JSONArray jsonArray = grid.getJSONArray(0); // 获取 grid中第一组数据
Double jsonArrayDouble = jsonArray.getDouble(0); // 获取grid第一组数据中的第一个值

在这里插入图片描述
在这里插入图片描述

JSONObject详解(com.alibaba)-fastjson2

一、导入fastjson2依赖

maven如下:

pom(本文所有代码仅使用这一个依赖即可):

<dependencies>
    <dependency>
        <groupId>com.alibaba.fastjson2</groupId>
        <artifactId>fastjson2</artifactId>
        <version>2.0.26</version>
    </dependency>
</dependencies>

在这里插入图片描述

二、json对象与json数组的创建

json对象创建

import com.alibaba.fastjson2.JSONObject;
 
public class Demo {
    public static void main(String[] args) {
        JSONObject info = new JSONObject();
        info.put("name", "张三");
        info.put("age", "18");
        info.put("地理", "70");
        info.put("英语", "60");
 
        System.out.println(info);
    }
}

在这里插入图片描述

json数组创建

import com.alibaba.fastjson2.JSONArray;
 
public class Demo {
    public static void main(String[] args) {
        JSONArray array = new JSONArray();
        array.add("1班");
        array.add("2班");
        array.add("3班");
 
        System.out.println(array);
    }
}

在这里插入图片描述

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
 
public class Demo {
    public static void main(String[] args) {
        JSONObject info1 = new JSONObject();
        info1.put("name", "张三");
        info1.put("age", "18");
        JSONObject info2 = new JSONObject();
        info2.put("name", "李四");
        info2.put("age", "19");
 
        //把上面创建的两个json对象加入到json数组里
        JSONArray array = new JSONArray();
        array.add(info1);
        array.add(info2);
 
        System.out.println(array);
    }
}

在这里插入图片描述

三、json对象取值与json数组遍历取值

json对象取值
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
 
public class Demo {
    public static void main(String[] args) {
        JSONArray array = new JSONArray();
        array.add("1班");
        array.add("2班");
        array.add("3班");
        JSONObject school = new JSONObject();
        school.put("schoolName", "第一中学");
        school.put("teacher", "刘梅");
 
        JSONObject info = new JSONObject();
        info.put("name", "张三");
        info.put("age", "18");
        info.put("gradle", array);
        info.put("schoolInfo", school);
 
        //从info中取值
        System.out.println(info.getString("name")); //张三
        System.out.println(info.getIntValue("age"));//18
        System.out.println(info.getJSONArray("gradle"));//["1班","2班","3班"]
        System.out.println(info.getJSONObject("schoolInfo"));//{"schoolName":"第一中学","teacher":"刘梅"}
    }
}

在这里插入图片描述

json数组遍历取值

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
 
public class Demo {
    public static void main(String[] args) {
        JSONObject info1 = new JSONObject();
        info1.put("name", "张三");
        info1.put("age", "18");
        JSONObject info2 = new JSONObject();
        info2.put("name", "李四");
        info2.put("age", "19");
 
        JSONArray array = new JSONArray();
        array.add(info1);
        array.add(info2);
        //遍历获取json数组中对象的值
        for (int i = 0; i < array.size(); i++) {
            JSONObject json = array.getJSONObject(i);
            System.out.println(json.getString("name"));
            System.out.println(json.getString("age"));
        }
    }
}

在这里插入图片描述

四、json对象与字符串的转换

json对象与字符串的转换
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
 
public class Demo {
    public static void main(String[] args) {
        JSONObject info = new JSONObject();
        info.put("name", "张三");
        info.put("age", "18");
        info.put("地理", "70");
        info.put("英语", "60");
 
        //JSON对象转字符串
        String str = JSON.toJSONString(info);
        System.out.println(str);
        //JSON字符串转JSON对象
        JSONObject json = JSONObject.parseObject(str);
        System.out.println(json);
    }
}

在这里插入图片描述

json字符串的字节数组转json对象

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
 
public class Demo {
    public static void main(String[] args) {
        String str = "{\"name\":\"张三\",\"age\":\"18\",\"地理\":\"70\",\"英语\":\"60\"}";
 
        byte[] bytes = str.getBytes();
        JSONObject data = JSON.parseObject(bytes);
 
        System.out.println(data);
    }
}

在这里插入图片描述

五、json数组与字符串的转换

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
 
public class Demo {
    public static void main(String[] args) {
        String text = "[\"张三\",\"李四\",\"王五\"]";
        System.out.println(text);
 
        //json字符串转json数组
        JSONArray data = JSON.parseArray(text);
        //json数组转json字符串
        String str = JSONArray.toJSONString(data);
 
        System.out.println(data);
        System.out.println(str);
    }
}

在这里插入图片描述

六、json字符串转java对象的转换

Student类如下:

public class Student {
    public String name;
    public int age;
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

json字符串转java对象的转换

import com.alibaba.fastjson2.JSON;
 
public class Demo {
    public static void main(String[] args) {
        Student student = new Student("张三", 18);
 
        //Student对象转JSON字符串
        String studentStr = JSON.toJSONString(student);
        //JSON字符串转Student对象
        Student data = JSON.parseObject(studentStr, Student.class);
 
        System.out.println(studentStr);
    }
}

在这里插入图片描述

java对象转byte数组转换

import com.alibaba.fastjson2.JSON;
 
public class Demo {
    public static void main(String[] args) {
        Student student = new Student("张三", 18);
 
        //Student对象转字节数组
        byte[] text = JSON.toJSONBytes(student);
        //字节数组转Student对象
        Student data = JSON.parseObject(text, Student.class);
 
        System.out.println(data.getName() + data.getAge());
    }
}

在这里插入图片描述

七、json字符串与Map转换

json字符串转Map
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.TypeReference;
 
import java.util.Map;
 
public class Demo {
    public static void main(String[] args) {
        String str = "{\n" +
                "\"gradle\":\"高一\",\n" +
                "\"number\":\"2\",\n" +
                "\"people\":[{\"name\":\"张三\",\"age\":\"15\",\"phone\":\"123456\"},\n" +
                "         {\"name\":\"李四\",\"age\":\"16\",\"phone\":\"78945\"}]\n" +
                "}";
 
        //json字符串转Map
        Map<String, Object> map = JSONObject.parseObject(str, new TypeReference<Map<String, Object>>() {
        });
        System.out.println(map.get("gradle").toString());
        System.out.println(map.get("number").toString());
        System.out.println(map.get("people").toString());
 
    }
}

在这里插入图片描述

如果你使用的是老的fastjson1(下述是简单示例,不可使用),可以像下面这样转换:

Map<String, String> map = new HashMap<>();
map.put("测试1", null);
map.put("测试2", "hello");
String str = JSON.toJSONString(map, SerializerFeature.WriteMapNullValue) ;

八、json数组转List

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
 
import java.util.List;
import java.util.Map;
 
public class Demo {
    public static void main(String[] args) {
        String str = "{\n" +
                "\"gradle\":\"高一\",\n" +
                "\"number\":\"2\",\n" +
                "\"people\":[{\"name\":\"张三\",\"age\":\"15\",\"phone\":\"123456\"},\n" +
                "         {\"name\":\"李四\",\"age\":\"16\",\"phone\":\"78945\"}]\n" +
                "}";
 
        JSONObject strJson = JSONObject.parseObject(str);
        //获取people数组
        JSONArray people = strJson.getJSONArray("people");
        //json数组转List
        List<Map> list = people.toJavaList(Map.class);
 
        System.out.println(str);
    }
}

在这里插入图片描述

如果你使用的是老的fastjson1,可以像下面这样转换:

String str = "{\n" +
 
                "\"gradle\":\"高一\",\n" +
 
                "\"number\":\"2\",\n" +
 
                "\"people\":[{\"name\":\"张三\",\"age\":\"15\",\"phone\":\"123456\"},\n" +
 
                "         {\"name\":\"李四\",\"age\":\"16\",\"phone\":\"78945\"}]\n" +
 
                "}";
 
JSONObject strJson = JSONObject.parseObject(str);//字符串转json对象
String people = String.valueOf(strJson.getJSONArray("people"));
List<Map<String, String>> list = (List<Map<String, String>>) JSONArray.parse(people);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值