Fastjson用法

依赖fastjson

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.47</version>
    </dependency>

0、新建一个实体类

package Json;

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

    public Person(String name, Integer age) {
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", 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;
    }
}

1、实体与json对象相互转换

public class jsontest {

@Test
    public void test1(){
        System.out.println("+++++++++++++java实体与json对象相互转换++++++++++++++");
        Person person1 = new Person("zhangsan", 12);
        System.out.println("实体对象:"+ person1);

        System.out.println("方式一");
        Object person1_json = JSONObject.toJSON(person1);
        System.out.println("实体转成的json对象:"+ person1_json);
        String person1_json_s = person1_json.toString();
        System.out.println("json对象转成json字符串:"+person1_json_s);

        System.out.println("方式二");
        String str1 = JSON.toJSONString(person1);
        System.out.println("实体转成的json字符串"+str1);
        System.out.println("反序列化==========================================");
        Person person1_1 = JSONObject.parseObject(person1_json_s, Person.class);
        System.out.println("json转成的实体:"+person1_1);
    }
}

输出:

+++++++++++++java实体与json对象相互转换++++++++++++++
实体对象:Person{name='zhangsan', age=12}
方式一
实体转成的json对象:{"name":"zhangsan","age":12}
json对象转成json字符串:{"name":"zhangsan","age":12}
方式二
实体转成的json字符串{"age":12,"name":"zhangsan"}
反序列化==========================================
json转成的实体:Person{name='zhangsan', age=12}

2、实体List与json对象相互转换

public class jsontest {

 @Test
    public void test2(){

        System.out.println("++++++java实体类型的List与json对象相互转换++++++++++++");
        List<Person> personlist1 = new ArrayList<>();
        personlist1.add(new Person("lisi",13));
        personlist1.add(new Person("wangwu",14));
        System.out.println("Person实体类型的List:"+personlist1);

        System.out.println("方式一");
        Object personlist1_json = JSONObject.toJSON(personlist1);
        System.out.println("Person实体类型的List转成的json对象:"+personlist1_json);
        String personlist1_json_s = personlist1_json.toString();
        System.out.println("json对象转成json字符串:"+personlist1_json_s);

        System.out.println("方式二");
        String str1 = JSON.toJSONString(personlist1);
        System.out.println("实体转成的json字符串"+str1);
        
        System.out.println("反序列化==========================================");
        List<Person> personlist1_1 = JSONObject.parseArray(personlist1_json_s, Person.class);
        System.out.println("json字符串转成的Person实体类型的List:"+personlist1_1);
    }
}

输出:

++++++java实体类型的List与json对象相互转换++++++++++++
Person实体类型的List:[Person{name='lisi', age=13}, Person{name='wangwu', age=14}]
方式一
Person实体类型的List转成的json对象:[{"name":"lisi","age":13},{"name":"wangwu","age":14}]
json对象转成json字符串:[{"name":"lisi","age":13},{"name":"wangwu","age":14}]
方式二
实体转成的json字符串[{"age":13,"name":"lisi"},{"age":14,"name":"wangwu"}]
反序列化==========================================
json字符串转成的Person实体类型的List:[Person{name='lisi', age=13}, Person{name='wangwu', age=14}]

 3、实体Map与json对象相互转换

在json转实体类型的Map过程中需要使用new TypeReference<>(){},定义反序列化的类型

public class jsontest {

    @Test
    public void test3(){

        System.out.println("+++++++++java实体类型的Map与json对象相互转换+++++++++++++++");
        Map<Integer,Person> personmap1 = new HashMap<>();
        personmap1.put(1,new Person("zhaoliu",16));
        personmap1.put(2,new Person("tianqi",17));
        System.out.println("Person实体类型的Map:"+personmap1);

        System.out.println("方式一");
        Object personmap1_json = JSONObject.toJSON(personmap1);
        System.out.println("Person实体类型的Map转成的json对象:"+personmap1_json);
        String personmap1_json_s = personmap1_json.toString();
        System.out.println("json对象转成json字符串:"+personmap1_json_s);

        System.out.println("方式二");
        String str1 = JSON.toJSONString(personmap1);
        System.out.println("实体转成的json字符串"+str1);

        System.out.println("反序列化==========================================");
        HashMap<Integer, Person> personmap1_1 =
                JSONObject.parseObject(personmap1_json_s, new TypeReference<HashMap<Integer, Person>>() {});
        System.out.println("json字符串转成的Person实体类型的Map:"+personmap1_1);
    }
}

输出:

+++++++++java实体类型的Map与json对象相互转换+++++++++++++++
Person实体类型的Map:{1=Person{name='zhaoliu', age=16}, 2=Person{name='tianqi', age=17}}
方式一
Person实体类型的Map转成的json对象:{"1":{"name":"zhaoliu","age":16},"2":{"name":"tianqi","age":17}}
json对象转成json字符串:{"1":{"name":"zhaoliu","age":16},"2":{"name":"tianqi","age":17}}
方式二
实体转成的json字符串{1:{"age":16,"name":"zhaoliu"},2:{"age":17,"name":"tianqi"}}
反序列化==========================================
json字符串转成的Person实体类型的Map:{1=Person{name='zhaoliu', age=16}, 2=Person{name='tianqi', age=17}}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Fastjson 将复杂的 JSON 字符串换为 Java 对象,你需要按照以下步骤进行操作: 首先,你需要在你的项目中添加 Fastjson 的依赖。如果你使用 Maven,可以在 pom.xml 文件中添加如下依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> </dependency> ``` 然后,你可以编写代码将 JSON 字符串换为 Java 对象。假设你有一个名为 "jsonString" 的字符串,它包含了复杂的 JSON 数据。你可以按照以下步骤进行换: ```java import com.alibaba.fastjson.JSON; // 定义一个类来映射 JSON 结构 public class MyObject { private String name; private int age; // 其他属性... // 必须要有默认构造函数 public MyObject() {} // Getter 和 Setter 方法... } public class Main { public static void main(String[] args) { String jsonString = "{\"name\":\"Alice\",\"age\":20}"; try { // 将 JSON 字符串换为 Java 对象 MyObject myObject = JSON.parseObject(jsonString, MyObject.class); // 访问换后的对象的属性 System.out.println("Name: " + myObject.getName()); System.out.println("Age: " + myObject.getAge()); } catch (Exception e) { e.printStackTrace(); } } } ``` 上述代码中,我们使用了 Fastjson 的 parseObject() 方法将 JSON 字符串换为 MyObject 类的对象。需要注意的是,你的 MyObject 类需要具有与 JSON 结构匹配的属性和对应的 getter 和 setter 方法。 希望这个示例对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值