fastjson的简单使用

一:将一个java对象转换为json字符串

通过JSON.toJSONString(java对象)方法,可以将一个java对象转换为json字符串。

使用方法和结果如下:

package com.example2.demo;

import com.alibaba.fastjson.JSON;
import org.junit.Test;

class Dog{
    private String name;
    protected int age;
    public int id;
    Dog(String name,int age,int id){
        this.name = name;
        this.age = age;
        this.id = id;
    }
}
public class JSONTests {

    @Test
    public void contextLoads() {
        String yuan = JSON.toJSONString(new Dog("yuan", 18,5));
        System.out.println(yuan);
    }
}

fastjson的简单使用_第1张图片

只有访问修饰符为public的成员变量才会转成json字符串,而private,protected修饰的成员变量将会被忽略,所以需要转换的java对象的属性都要写成公有类型,或者添加get方法

fastjson的简单使用_第2张图片

推荐要转为json字符串的java对象,属性全为private,然后提供get,set方法

二.将json字符串转化为一个java对象

通过JSON.parseObject(json字符串,class对象) 方法,将json字符串转化为一个java对象

使用如下:

package com.example9.demo913;
import com.alibaba.fastjson.JSON;
import org.junit.Test;
class Dog{
    private String name;
    private 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 class FastJsonTests {
    @Test
    public void testJson(){
        String json = "{name:\"shan\",age:18}";
        Dog dog = JSON.parseObject(json, Dog.class);
        System.out.println(dog.getName()+"==>"+dog.getAge());
    }
}

 

fastjson的简单使用_第3张图片

这里的java对象必须有不带参数的构造函数,可以一个构造函数都不写(会有默认构造函数),如果没有不带参数的构造函数,会报create instance error的异常,说明这个方法是根据不带参数的构造函数创建java对象,然后向其赋值,所以如果是私有属性或保护属性json转对象就必须提供set方法,对象转json则必须提供get方法,如果是公有属性则不需要添加get,set方法,可以视情况而定

三.将一个java集合转换为json字符串

这个与将java对象转换为json字符串没有区别,都是通过JSON.toJSONString(java集合)方法

package com.example2.demo;
import com.alibaba.fastjson.JSON;
import org.junit.Test;
import java.util.ArrayList;

class Dog {
    public String name;
    public int age;

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

public class JSONTests {

    @Test
    public void contextLoads() {
        ArrayList dogList = new ArrayList<>();
        dogList.add(new Dog("yuan", 18));
        dogList.add(new Dog("shan", 20));
        String dogListStr = JSON.toJSONString(dogList);
        System.out.println(dogListStr);
    }
}

fastjson的简单使用_第4张图片

四.将json字符串转化为ArrayList

这个和转对象很像,通过JSON.parseArray(json字符串,class对象) 方法,将json字符串转化为一个java对象

package com.example2.demo;

import com.alibaba.fastjson.JSON;
import org.junit.Test;
import java.util.List;

class Dog {
    public String name;
    public int age;
}

public class JSONTests {

    @Test
    public void contextLoads() {
        String listStr = "[{\"age\":18,\"name\":\"yuan\"},{\"age\":20,\"name\":\"shan\"}]";
        List dogs = JSON.parseArray(listStr, Dog.class);
        for(Dog dog:dogs){
            System.out.println(dog.name+"==>"+dog.age);
        }
    }
}

fastjson的简单使用_第5张图片

总结:

将一个json字符串转化为java对象使用parseObject方法,转化为List使用parseArray方法;

将java对象或集合转化为json字符串则都使用toJSONString方法;

 

你可能感兴趣的:(java,fastjson)