JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web应用程序之间的数据传输。
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对象