JSON 、对象、 Map 三者的统一转化

本文介绍了如何使用阿里巴巴的Fastjson库在Java中实现对象、JSON字符串和Map之间的相互转换。通过示例代码展示了如何将Student对象转换为JSON,再由JSON解析成Map,接着将Map重新转换回JSON,最后将JSON反序列化回Student对象。同时,文中提到了如何通过注解控制对象在转换过程中的字段处理,包括忽略null值、自定义属性名和完全忽略某些属性。
摘要由CSDN通过智能技术生成

JSON 对象 Map之间的统一转化

在编写代码时,经常会碰到一些类型转化的需求,比如对象转JSON或者对象转Map等等,如果自己手写又太麻烦,因此我总结了一下JSON、对象和Map三者之间的转化关系,如下图
在这里插入图片描述

  • 调用如图的方法需要导入所需依赖,如下:
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>
  • 以下是测试代码
public class TestMapObject {

    @Data
    public static class Student {
        private String name;
        private int age;
    }

    public static void main(String[] args) {
        //对象<====>JSON<====>Map

        Student student = new Student();
        student.setName("张三");
        student.setAge(1);

        //对象->json
        String json = JSONObject.toJSONString(student);
        System.out.println("对象->json = " + json);

        //json->map
        Map<String,Object> map = JSONObject.parseObject(json);
        System.out.println("json->map = " + map);

        //map-->json
        String json1 = JSONObject.toJSONString(map);
        System.out.println("map-->json = " + json1);

        //json-->对象
        Student student2 = JSONObject.parseObject(json1, Student.class);
        System.out.println("json-->对象 = " + student2);
    }

}
  • 控制台打印结果如下:

对象->json = {“age”:1,“name”:“张三”}
json->map = {“name”:“张三”,“age”:1}
map–>json = {“name”:“张三”,“age”:1}
json–>对象 = TestMapObject.Student(name=张三, age=1)

  • 此外,在进行java对象转JSON时,可以设置当前类的部分属性不参与转化
@JsonInclude(JsonInclude.Include.NON_NULL)
//类注解:当前类中若属性为null,则不参与JSON转化

@JsonProperty("created_at")
//属性注解:设置返回JSON串的名字

@JSONIgnore
//属性注解:设置不参与JSON转换
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值