JSON 简介

发布时间:2023年12月29日

JSON是什么?(了解)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web应用程序之间的数据传输。

JSON格式是一种文本格式,用于描述数据的结构和内容。它由两种基本元素组成:键值对和数组。键值对是一个键和一个值之间的映射关系,用于描述对象的属性和值。数组是一个有序列表,用于描述对象的多个值。

JSON的结构组成是什么?(掌握)

键值对

键值对由一个键和一个值之间的映射关系组成。键和值之间用冒号(:)分隔,每个键值对之间用逗号(,)分隔。键必须是一个字符串,值可以是一个字符串、数字、布尔值、对象或数组。

数组

数组是一个有序列表,由一组值组成。每个值可以是一个字符串、数字、布尔值、对象或数组。值之间用逗号(,)分隔。

JSON格式主要用于什么地方?(了解)

  • 在Web应用程序之间传输数据;
  • 用于存储和读取数据;
  • 用于API数据交换;
  • 用于配置文件格式。

JSON字符串和对象的互换如何进行?(掌握)

引入依赖包,会调用JSON的一些方法

<!--JSON 使用需要-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.28</version>
</dependency>

<!--lombok 注解需要-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
</dependency>

对象格式化为JSON字符串,调用 JSON.toJSONString(“对象”)
JSON字符串转化为对象,调用 JSON.parseObject(jsonString, 对象.class);

代码示例如下:

User对象类:

package com.json;

import lombok.Data;

@Data
public class User {

    private String name;
    private int age;
    private String address;

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }
}

JsonTest类

package com.json;

import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class JsonTest {

    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        map.put("name","Gump");
        map.put("age","18");
//        map.put("address","重庆");

        String jsonString = JSON.toJSONString(map);
        System.out.println(jsonString);//{"name":"Gump","age":"18"}
        //JSON字符串转对象时,默认填充为空的项,例如 address='null'
        User user = JSON.parseObject(jsonString, User.class);
        System.out.println(user);//User{name='Gump', age=18, address='null'}

        Map<String,String> map2 = new HashMap<>();
        map2.put("name","you");
        map2.put("age","17");
        map2.put("address","中国");
        List<Map<String,String>> list = new ArrayList<>();
        list.add(map);
        list.add(map2);
        jsonString = JSON.toJSONString(list);
        System.out.println(jsonString);
        //如果转换的对象是List 需要用 parseArray 方法,返回List<T>对象
        List<User> userList = JSON.parseArray(jsonString, User.class);
        System.out.println(userList);
    }
}

注意:
JSON字符串转对象时,默认填充为空的项,例如示例中的 address=‘null’

如果转换的对象是List 需要用 parseArray 方法,返回List对象

文章来源:https://blog.csdn.net/glb168/article/details/135263701
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。