一、一切数据都可以用三种方式表示
-
标量(scalar)
也就是一个单独的字符串(string)或数字(numbers).
比如"北京"这个单独的词。
-
序列(sequence)
也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List)
比如"北京,上海"。
-
映射(mapping)
也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作散列(hash)或字典(dictionary)
比如"首都:北京"。
二、Json标准
-
并列数据的集合(数组)用方括号("[]")表示。
-
并列的数据之间用逗号(", ")分隔。
-
映射的集合(对象)用大括号("{}")表示。
-
映射用冒号(": ")表示。
三、示例
1.fastjson包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.74</version>
</dependency>
2.java代码
package main.cn.yang37.json;
import com.alibaba.fastjson.JSONObject;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* @Description:
* @Class: JsonTest1
* @Author: Yiang37
* @Date: 2020/12/9 0:12
* @Version: 1.0
*/
public class JsonTest1 {
public static void main(String[] args) {
List list = new LinkedList();
list.add("12");
list.add("12");
System.out.println("list "+JSONObject.toJSON(list));
Map map = new LinkedHashMap();
map.put("k1", "v");
map.put("k2", "v");
System.out.println("map "+JSONObject.toJSON(map));
List listContainMap = new LinkedList();
listContainMap.add(map);
listContainMap.add(map);
System.out.println("listContainMap "+JSONObject.toJSON(listContainMap));
Map mapContainList = new LinkedHashMap();
mapContainList.put("myMap", listContainMap);
System.out.println("mapContainList "+JSONObject.toJSON(mapContainList));
}
}
3.运行结果
list ["12","12"]
map {"k1":"v","k2":"v"}
listContainMap [{"k1":"v","k2":"v"},{"k1":"v","k2":"v"}]
mapContainList {"myMap":[{"k1":"v","k2":"v"},{"k1":"v","k2":"v"}]}
4.用工具格式化一下后两个
//listContainMap
[
{
"k1": "v",
"k2": "v"
},
{
"k1": "v",
"k2": "v"
}
]
//mapContainList
{
"myMap":
[
{
"k1": "v",
"k2": "v"
}, {
"k1": "v",
"k2": "v"
}
]
}