Json框架之FastJson

1.什么是JSON?

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 具有自我描述性,更易理解

2.JSON数据格式

2.1.Json数组格式

Json本身是数组格式,用中括号[]包裹,数组元素之间用逗号,隔开,元素的数据类型没有限制。
例如:

  • [1,2,3]
  • [“张三”,“李四”,“王五”]
  • [{“name”:“张三”,“sex”:“男”}]
[
    1,
    2,
    3
]
[
    "张三",
    "李四",
    "王五"
]
[
    {
        "name":"张三",
        "sex":"男"
    }
]

2.2.Json字符串格式

Json本身是字符串格式,用中括号{}包裹,数据采用键值对方式存储,键是字符串格式,值是任意数据的类型,键和值用:分开,元素与元素之间用,隔开。
例如:

  • {“name”:“张三”,“sex”:“男”}
  • { “result”:true }
  • {“name”:“张三”,“result”: [{“name”:“李四”,“sex”:“男”}]}
{
    "name":"张三",
    "sex":"男"
}
{
    "result":true
}
{
    "name":"张三",
    "result":[
        {
            "name":"李四",
            "sex":"男"
        }
    ]
}

3.FastJson介绍

FastJson是阿里巴巴开源JSON解析库,它可以解析JSON字符串,支持将Java Bean 序列化为字符串,也可以从JSON字符串反序列化到Java bean。

3.1.FastJson在开发中的用法

常用数据转换:

public class TestFastJson {
    public static void main(String[] args) {

        List<String> list = new ArrayList<>();
        list.add("张三1");
        list.add("张三2");
        list.add("张三3");
        // list集合序列化json字符串
        String s = JSON.toJSONString(list);
        System.out.println(s); // ["张三1","张三2","张三3"]

        Map<String, String> map = new HashMap<>();
        map.put("name", "李四");
        map.put("age", "20");
        map.put("sex", "1");
        // map集合转json字符串
        String s1 = JSON.toJSONString(map);
        System.out.println(s1); // {"sex":"1","name":"李四","age":"20"}

        String s3 = "{\"sex\":\"1\",\"name\":\"李四\",\"age\":\"20\"}";
        // json字符串反序列化为java对象,需要传递java对象的class对象
        String s2 = JSON.parseObject(s3, String.class);
        System.out.println(s2); // {"sex":"1","name":"李四","age":"20"}

        String s4 = "[\"张三1\",\"张三2\",\"张三3\"]";
        // json字符串反序列化回到list集合,需要集合的泛型的class对象
        List<String> list1 = JSON.parseArray(s4, String.class);
        System.out.println(list1); // [张三1, 张三2, 张三3]

        String s5 = "{\"sex\":\"1\",\"name\":\"李四\",\"age\":\"20\"}";
        // json字符串反序列化到map集合中,转后的集合必须要有泛型否则是不安全的,在TypeReference中传入map集合,
        // 因为TypeReference是被protected修饰,所有不能直接使用,加上{}变成匿名内部类
        Map<String, String> map1 = JSON.parseObject(s5, new TypeReference<Map<String, String>>() {
        });
        System.out.println(map1); // {sex=1, name=李四, age=20}
        
    }
}

如有不同看法,欢迎留言讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值