从零开始学JAVA记录(JSON)——2019年6月14日

今天又是一个学习JAVA的好日子!

JSON 编写的用户列表:
[
{
“name”: “john”,
“age”: 15
},
{
“name”: “wall”,
“age”: 22
},
{
“name”: “ben”,
“age”: 8
}
]

JSON:JavaScript 对象表示法(JavaScript Object Notation), 一种轻量级的数
据交换格式, 易于人阅读和编写, 也易于机器解析和生成。用来描述数据结构,
它是基于纯文本的数据格式,是一种轻量级的数据交换格式。广泛应用于服务端
与客户端的数据交互。
JSON 是存储和交换文本信息的语法,类似 XML。

  1. 基本类型

{
“name”: “张三”,
“age”: 18,
“sex”: true
}

  1. 数组类型
    [
    {
    “name”: “张三”,
    “age”: 18,
    “sex”: true
    },
    {
    “name”: “李四”,
    “age”: 19,
    “sex”: false
    }
    ]
  2. 对象嵌套
    {
    “name”: “teacher”,
    “computer”: {
    “CPU”: “intel7”,
    “disk”: “512G”
    },
    “students”: [
    {
    “name”: “张三”,
    “age”: 18,
    “sex”: true
    },
    {
    “name”: “李四”,
    “age”: 19,
    “sex”: false
    }
    ]
    }

解析方式
使用 gson 处理

  1. 转为 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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值