「这是我参与2022首次更文挑战的第26天,活动详情查看:2022首次更文挑战」。
前言
大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习进步。
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍JSON的介绍和语法,以及一款JSON解析器Jackson的具体使用。
JSON
1. Json简介
JSON(JavaScript Object Notation)JavaScript对象表示法。Json是一种轻量级的文本数据交换格式,比XML更小,更快,更易解析。
2. Json语法
2.1 Json定义
JSON对象
{key1:value1,key2:value2 ...}
key都是字符串。key可以使用单引号或双引号括起来,也可以不使用引号。
value可以是以下类型:
- 数字类型
- 字符串类型
- 数组类型
- 对象类型
- 布尔类型
- null类型
【实例】
{
name:"jack",
age:20,
list:[{name:"tom",age:34},{name:"Maria",age:30}],
IsMan:true,
description:{job:"teacher"},
mate:null
}
JSON数组
[
{key:value},
{key:value},
{key:value},
...
]
2.2 Json获取
简单对象获取
let p = {name:"jack",age:20}
-
通过(.)获取value
let name = p.name -
通过([])获取value
let name = p["name"]
循环获取:
for(var key in p){
alter(key);
alter(p[key]);
}
需要注意的是,在上诉循环中获取的key只是字符串,所以要通过第二种方式获取value值。
对象数组获取:先获取到对象,再根据对象获取。
2.3 Json值的修改和删除
通过.进行修改,删除
p.name = "tom";
delete p.name;
通过[]修改,删除
p["name"] = "tom";
delete p["name"];
3. Json解析器——Jackson
Jack解析器使Json数据和对象之间可以相互转换,常见的Json有以下几种:
- Jsonlib
- Gson
- fastjson
- jackson
今天我们就来学习最后一个Json解析器Jackson,这是Spring框架中内置的JSON解析器。
3.1 将Java对象转化为JSON对象
首先导入Jackson的jar包。
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
然后创建ObjectMapper对象。
ObjectMapper mapper = new ObjectMapper();
转换方法:
-
public String writeValueAsString(Object value)将java对象转化为JSON字符串
-
public void writeValue(Writer w, Object value)将Java对象转化为JSON填充到字符输出流中。
-
public void writeValue(OutputStream out, Object value)将Java对象转化为JSON填充到字节输出流中。
-
public void writeValue(File resultFile, Object value)将Java对象转化为JSON写入到文件中。
3.2 将JSON对象转化为Java对象
转化方法:
public <T> T readValue(String content, Class<T> valueType)
【实例】
mapper.readValue(要转化的json字符串,Person.class);
小结
以上就是关于JSON数据格式的简单介绍和基本使用,以及JSON解析器Jackson的具体使用,希望能对读者有所帮助,如有不正之处,欢迎留言指正。