今天又是一个学习JAVA的好日子!
JSON 编写的用户列表:
[
{
“name”: “john”,
“age”: 15
},
{
“name”: “wall”,
“age”: 22
},
{
“name”: “ben”,
“age”: 8
}
]
JSON:JavaScript 对象表示法(JavaScript Object Notation), 一种轻量级的数
据交换格式, 易于人阅读和编写, 也易于机器解析和生成。用来描述数据结构,
它是基于纯文本的数据格式,是一种轻量级的数据交换格式。广泛应用于服务端
与客户端的数据交互。
JSON 是存储和交换文本信息的语法,类似 XML。
- 基本类型
{
“name”: “张三”,
“age”: 18,
“sex”: true
}
- 数组类型
[
{
“name”: “张三”,
“age”: 18,
“sex”: true
},
{
“name”: “李四”,
“age”: 19,
“sex”: false
}
] - 对象嵌套
{
“name”: “teacher”,
“computer”: {
“CPU”: “intel7”,
“disk”: “512G”
},
“students”: [
{
“name”: “张三”,
“age”: 18,
“sex”: true
},
{
“name”: “李四”,
“age”: 19,
“sex”: false
}
]
}
解析方式
使用 gson 处理
- 转为 Json 字符串
I)、获得需要的对象:
Student stu = new Student();
stu.setName(“张三”);
stu.setAge(18);
II)、格式化为字符串
Gson gson = new Gson();
//将 对象 转化成 json 字符串
String json = gson.toJson(stu)
Json 解析成 java 对象
{“name”:”张三”,”age”:18,”sex”:true}
Gson gson = new Gson();
// 将 json 转化成 java 对象
Student stu = gson.fromJson(json, Student.class);
Json 解析 成 List
[
{“name”:“a”,“age”:18,“sex”:true},
{“name”:“b”,“age”:19,“sex”:false},
{“name”:“c”,“age”:20,“sex”:true},
{“name”:“d”,“age”:21,“sex”:false},
{“name”:“e”,“age”:22,“sex”:true}
]
Gson gson = new Gson();
// 将 json 转化 成 List 泛型
List stus = gson.fromJson(json, new TypeToken<List>()
{}.getType());
Json 节点解析
{
“flag”: true,
“data”: {
“name”: “张三”,
“age”: 18,
“sex”:
}
}
解析步骤 :
①获得解析器
JsonParser parser = new JsonParser();
②获得根节点元素
JsonElement element = parser.parse(json);
③根据文档判断根节点属于什么类型的 Gson 节点对象
// 假如文档 显示 根节点 为对象类型
// 获得 根节点 的实际 节点类型
JsonObject root = element.getAsJsonObject();
④取得节点下的某个节点的 value
// 获得 flag 节点的值, flag 节点为基本数据节点
JsonPrimitive flagJson = root.getAsJsonPrimitive(“flag”);
// 基本节点取值
boolean flag = flagJson.getAsBoolean();
// 获得 data 节点的值,data 节点为 Object 数据节点
JsonObject dataJson = root.getAsJsonObject(“data”);
// 将节点上的数据转换为对象
Student stu = new Gson().fromJson(dataJson,Student.class);