JSON用法

本文详细介绍了阿里巴巴的Fastjson库,包括如何在Maven项目中引入依赖,以及常用的方法如序列化、反序列化Java Bean和Json对象。通过实例展示了如何将实体类转换为Json字符串,从Json字符串解析回Java Bean,以及处理Json数组和Json对象。此外,还涵盖了将列表和映射转换为Json格式的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fastjson的maven依赖,导入pom文件中

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>

com.alibaba.fastjson包最常用的两个类JSON、JSONObject两个类。JSONObject继承于JSON父类。

package com.test.lyt.pojo;

import org.springframework.stereotype.Component;

@Component

public class Dog {
    private String name;
    private Integer age;

    public Dog() {
    }

    public Dog(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

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

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
package com.test.lyt.json;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.test.lyt.pojo.Dog;

import java.util.*;


/**
 * @author lyt
 * @description
 * @date 2021/9/13 9:14
 */
public class StudyJson {


    /**
     * 序列化:实体类  序列化  为Json的字符串形式
     */
    public void toJsonString() {
        Dog dog = new Dog("luke", 1);
        System.out.println("dog实体类:" + dog);
        String s = JSON.toJSONString(dog);
        System.out.println("序列化:实体类  序列化  为Json的字符串形式");
        System.out.println("toJsonString方法:s=" + s + "\n");
    }

    /**
     * 带转义的字符串String  反序列化  为Json对象
     */
    public void parseJsonObject() {
        String s = "{\"name\":\"mary\",\"age\":105}";
        JSONObject jsonObject = JSON.parseObject(s);
        System.out.println("带转义的字符串String  反序列化  为Json对象");
        System.out.println("parseJsonObject方法:jsonObject=" + jsonObject + "\n");
    }

    /**
     * 带转义的字符串String  反序列化  为javaBean对象
     */
    public void parseBeanObject() {
        String s = "{\"name\":\"mary\",\"age\":105}";
        Dog dog = JSON.parseObject(s, Dog.class);
        System.out.println("带转义的字符串String  反序列化  为javaBean对象");
        System.out.println("parseBeanObject方法:dog=" + dog.getName() + "," + dog.getAge() + "\n");
    }

    /**
     * 将javaBean  转化  为json对象
     */
    public void javabeanJsonObject() {
        Dog hello = new Dog("hello", 4);
        JSONObject jsonObject = (JSONObject) JSON.toJSON(hello);
        System.out.println("将javaBean  转化  为json对象");
        System.out.println("javabeanJsonObject方法:jsonObject=" + jsonObject + "\n");
    }

    /**
     * json对象  转换为 实体对象
     */
    public void jsonTOBean() {
        String s = "{\"name\":\"mary\",\"age\":105}";
        JSONObject object = JSON.parseObject(s);
        Integer age = object.getInteger("age");
        String name = object.getString("name");
        Dog dog = new Dog(name, age);
        System.out.println("json对象  转换为 实体对象");
        System.out.println("jsonTOBean方法:dog=" + dog + "\n");
    }

    /**
     * 将string转为list后转为json
     * 可以使用list的add函数将需要的字符串拼接即可,但是这个只能使用JSONArray
     */
    public void stringListJson() {

//        String[] 转 List
//        String[] str = {"01", "02"};
//        List<String> listStr = Arrays.asList(str);

        List list = new ArrayList();
        list.add("username");
        list.add("age");
        list.add("sex");
        JSONArray list_objects = new JSONArray();
        list_objects.add(list);
        System.out.println("将string转为list后转为json");
        System.out.println("StringListJson方法:list_objects=" + list_objects + "\n");
    }

    /**
     * 将string转为map后转为json
     */
    public void stringMapJson() {
        Map map = new HashMap();
        map.put("1", "abc");
        map.put("2", "efg");
        JSONArray map_objects = new JSONArray();
        map_objects.add(map);
        System.out.println("将string转为map后转为json");
        System.out.println("stringMapJson方法:map_objects=" + map_objects + "\n");
    }

    /**
     * map转成Json格式的String
     * Json格式的String[map] 转成 map
     */
    public void intMapJsonString() {
        System.out.println("map转成Json格式的String");
        Map<Integer, Double> map = new HashMap<>();
        map.put(1, 1.1);
        map.put(2, 2.2);
        System.out.println("map=" + map);
        String s = JSON.toJSONString(map);
        System.out.println("Json格式的String s=" + s);
        Map map1 = JSON.parseObject(s, Map.class);
        System.out.println("Json格式的String s转换后的map1=" + map1 + "\n");
    }

    /**
     * list转成Json格式的String
     */
    public void intListJsonString() {
        System.out.println("list转成Json格式的String");
        List<Dog> list = new ArrayList<>();
        list.add(new Dog("bake", 2));
        list.add(new Dog("black", 4));
        System.out.println("list=" + list);
        String s = JSON.toJSONString(list);
        System.out.println("Json格式的String s=" + s);
        List list1 = JSON.parseObject(s, List.class);
        System.out.println("Json格式的String s转换后的list1=" + list1);


        JSONArray objects = JSON.parseArray(s);
        System.out.println("json格式:  " + objects);
        List<Dog> dogs = JSON.parseArray(s, Dog.class);
        System.out.println("遍历dogs");
        dogs.forEach(x -> System.out.println(x.getName() + " " + x.getAge()));
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        StudyJson studyJson = new StudyJson();

        studyJson.toJsonString();
        studyJson.parseBeanObject();
        studyJson.parseJsonObject();
        studyJson.javabeanJsonObject();

        studyJson.jsonTOBean();
        studyJson.stringListJson();
        studyJson.stringMapJson();

        studyJson.intMapJsonString();
        studyJson.intListJsonString();
    }
}

控制台输出:

dog实体类:Dog{name='luke', age=1}
序列化:实体类  序列化  为Json的字符串形式
toJsonString方法:s={"age":1,"name":"luke"}

带转义的字符串String  反序列化  为javaBean对象
parseBeanObject方法:dog=mary,105

带转义的字符串String  反序列化  为Json对象
parseJsonObject方法:jsonObject={"name":"mary","age":105}

将javaBean  转化  为json对象
javabeanJsonObject方法:jsonObject={"name":"hello","age":4}

json对象  转换为 实体对象
jsonTOBean方法:dog=Dog{name='mary', age=105}

将string转为list后转为json
StringListJson方法:list_objects=[["username","age","sex"]]

将string转为map后转为json
stringMapJson方法:map_objects=[{"1":"abc","2":"efg"}]

map转成Json格式的String
map={1=1.1, 2=2.2}
Json格式的String s={1:1.1,2:2.2}
Json格式的String s转换后的map1={1=1.1, 2=2.2}

list转成Json格式的String
list=[Dog{name='bake', age=2}, Dog{name='black', age=4}]
Json格式的String s=[{"age":2,"name":"bake"},{"age":4,"name":"black"}]
Json格式的String s转换后的list1=[{"name":"bake","age":2}, {"name":"black","age":4}]
json格式:  [{"name":"bake","age":2},{"name":"black","age":4}]
遍历dogs
bake 2
black 4

JSON处理对接前端端口数据类型





JSON处理(三): 不返回null字段 @JsonInclude

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值