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

toJSONString结果

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

推荐要转为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());
    }
}

 

这里的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<Dog> dogList = new ArrayList<>();
        dogList.add(new Dog("yuan", 18));
        dogList.add(new Dog("shan", 20));
        String dogListStr = JSON.toJSONString(dogList);
        System.out.println(dogListStr);
    }
}

四.将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<Dog> dogs = JSON.parseArray(listStr, Dog.class);
        for(Dog dog:dogs){
            System.out.println(dog.name+"==>"+dog.age);
        }
    }
}

总结:

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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fastjson是一个Java语言编写的高性能JSON处理库,可以实现JSON字符串与Java对象之间的相互转换。下面是一个简单的示例,演示了如何使用Fastjson进行JSON的序列化和反序列化: 1. 导入Fastjson的依赖包到你的项目中。你可以在Maven或Gradle配置文件中添加以下依赖: ```xml <!-- Maven --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version> </dependency> // Gradle implementation 'com.alibaba:fastjson:1.2.78' ``` 2. 创建一个Java对象,例如: ```java public class Person { private String name; private int age; // getters and setters } ``` 3. 将Java对象转换为JSON字符串: ```java import com.alibaba.fastjson.JSON; Person person = new Person(); person.setName("John"); person.setAge(25); String jsonString = JSON.toJSONString(person); System.out.println(jsonString); ``` 这将输出以下JSON字符串: ```json {"age":25,"name":"John"} ``` 4. 将JSON字符串转换为Java对象: ```java String jsonString = "{\"name\":\"John\",\"age\":25}"; Person person = JSON.parseObject(jsonString, Person.class); System.out.println(person.getName()); System.out.println(person.getAge()); ``` 这将输出: ``` John 25 ``` 这只是Fastjson的基本用法示例,你还可以使用Fastjson进行更复杂的JSON处理操作,例如处理嵌套对象、数组等。你可以参考Fastjson的官方文档(https://github.com/alibaba/fastjson/wiki/Quick-Start)了解更多用法和功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值