JSON

1.JSON基本

(1)定义

JSON:JavaScript 对象表示法(JavaScript Object Notation)

一种轻量级的数据交换格式, 易于人阅读和编写, 也易于机器解析和生成。

用来描述数据结构,它是基于纯文本的数据格式,广泛应用于服务端与客户端的数据交互。

(2)格式

两种构建结构:

  • 对象:“ 名称/ 值” 对的集合
  • 数组: 值的有序列表

具体形式:

  • Json 以 key-value 的形式存储数据;
  • Key 的取值 为 String 类型;
  • Value 的取值 为 String,boolean,Number,数组,Object,null;
  • Json 串以{开始,以}结尾;
  • Json 串中数组是以[开始,以]结尾;
  • Json 串中 Object 是以{开始,以}结尾。

(3)举例

  • 基本类型

    {
        "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
        }
    ]
}

2.JSON解析

(1)使用 gson 处理

Gson是一个Google提供的一个Java库,可用于将Java对象转换为JSON表示。也可以被用来将 JSON 字符串转换成一个等效的 Java 对象。

1)转为 Json 字符串

  • 获得需要的对象:
Student stu = new Student();
stu.setName("张三");
stu.setAge(18);
  • 格式化 为字符串:
Gson gson = new Gson();
//将 对象 转化成 json 字符串
String json = gson.toJson(stu);

2)解析成 java 对象

  • 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);

(2)使用 fastjson 处理

阿里巴巴 fastJson 是一个 Json 处理工具包,包括“序列化”和“反序列化”两
部分,它 具备如下特征:速度最快,测试表明,fastjson 具有极快的性能,超
越其他的 Java Json parser。包括自称最快的 JackJson;功能强大,完全支持 Java
Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖。

  • 转为 json 字符串

String jsonString = JSON.toJSONString(object);

  • 解析成对象

1). JavaBean : Person person = JSON.parseObject(jsonString, Person.class);

2). List : List listPerson =JSON.parseArray(jsonString, Person.class);

3). List:List listString = JSON.parseArray(jsonString, String.class);

4). List List listMap = JSON.parseObject(jsonString, new TypeReference<List>(){});

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值