初识JSON和JSON解析

Json简介

Json(JavaScript Object Notation)是一种轻量级的数据交换格式

,比XML更小更快更容易解析。Json和XML一样是具有自我描述性,平台无关性。

举个栗子:

{
    "key1":"value",
    "key2":"value",
    "key3":["value",["value1","value2"],{"key002":"value"}],
    "key4":{"key04":"value","key05":["value1","value2"],"key06":{"key005":"value"}}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UGxVj53c-1629302380424)(C:\Users\Tanlong\AppData\Roaming\Typora\typora-user-images\image-20210818093534306.png)]

Json的数据数据格式是“键值对”(“key”:”value”),其中值(value)是可以为:数字、字符串、boolean、数组、对象、null。

Json中数组为:[value1,value2,…… ]

Json中对象为:{ “key1”:”value”,”key2”:”value”…… }

Json的数据也可以进行嵌套,数组中还可以有数组,也可以有对象;对象中还可以有数组,也可以有对象。

当Json嵌套太多时不便于阅读,可采用Json格化式工具转换为树状结构。

Json是可以和XML进行转换的,将上述栗子转换为XML如下:

<?xml version="1.0" encoding="UTF-8" ?>
<object>
    <key1>value</key1>
    <key2>value</key2>
    <key3>value</key3>
    <key3>value1</key3>
    <key3>value2</key3>
    <key3>
        <key002>value</key002>
    </key3>
    <key4>
        <key04>value</key04>
        <key05>value1</key05>
        <key05>value2</key05>
        <key06>
            <key005>value</key005>
        </key06>
    </key4>
</object>

但是Json与XML相比更小、更快更容易解析,在网络数据传输多采用Json。

在Java中,使用Json可以快速地讲java对象转换为Json字符串,也可将Json转换为java对象。java中多采用谷歌的GSON或阿里的FastJSON。

Gson初级使用

Gson是可以将java对象转换为Json字符串,也可将Json字符串转换为java对象。

Gson使用:

使用new Gson();创建Gson对象,然后在使用toJson()fromJson()方法进行转换。    
public class GsonDemo {
    public static void main(String[] args) {
        Student student = new Student("张三", 18);
        //使用构造方法创建对象
        Gson gson = new Gson();
        //使用toJson(),将对象转换为Json字符串
        String s = gson.toJson(student);
        System.out.println(s);
        //使用fromJson(),将Json字符串转换为java对象
        Student student1 = gson.fromJson(s, Student.class);
        System.out.println(student1);
        
        
         ArrayList<Student> list = new ArrayList<>();
        list.add(new Student("张三", 18));
        list.add(new Student("李三", 19));
        list.add(new Student("王三", 20));
        list.add(new Student("陈三", 21));
		//使用toJson将列表转换为Json对象
        String s1 = gson.toJson(list);
        System.out.println(s1);
        //使用fromJson将Jsopn字符串转换为列表,需要用new TypeToken<List<Student>>() {}.getType()获取Type对象,这是一个要注意的地方
        List<Student> list1 = gson.fromJson(s1, new TypeToken<List<Student>>() {}.getType());
        list1.forEach((student2)-> System.out.println(student2));
    }
}

FastJSON初级使用

Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。Fastjson 源码地址:https://github.com/alibaba/fastjson

主要特点:

  • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)

  • 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)

  • 零依赖(没有依赖其它任何类库除了JDK)

举例简单应用:
public class FastJson {
	public static void main(String[] args) {
        //使用静态方法toJSONString,将对象转换为json字符串
		String json = JSON.toJSONString(new Student("张三", 18));
		System.out.println(json);
        //使用静态方法parseObject,将json字符串转换为对象
		Student student = JSON.parseObject(json, Student.class);
		System.out.println(student);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值