1 前言
有时我们需要将一个Json文件中的数据存储在数据库中,如果不嫌麻烦,可以手动复制内容到数据库中,但是程序员都是懒的,至少我是。因此我们可以使用
JsonReader
来解析Json文件。
2 使用
2.1 maven依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
2.2 常用方法
方法名 | 返回值 | 描述 |
---|---|---|
beginArray() | void | 开始解析数组 |
endArray() | void | 结束解析数组 |
beginObject() | void | 开始解析对象 |
endObject() | void | 结束解析对象 |
hasNext() | Boolean | 如果当前数组或对象有其他元素,则返回true |
nextName() | String | 返回key |
nextString() | String | 返回String类型的value |
peek() | JsonToken | 返回value的类型 |
skipValue() | void | 跳过下一个value |
2.3 简单使用
2.3.1 数据
{
"code": 200,
"message": "成功",
"data": [
"数据1",
"数据2"
]
}
2.3.2 读取键值对
package org.example;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import java.io.FileReader;
public class Demo {
public static void main(String[] args) throws Exception {
JsonReader re = new JsonReader(new FileReader(filePath));
re.beginObject();
while (re.hasNext()) {
System.out.print(re.nextName() + ": ");
if (re.peek() == JsonToken.BEGIN_ARRAY) {
re.beginArray();
while (re.hasNext()) {
System.out.print(re.nextString() + " ");
}
System.out.println();
re.endArray();
} else {
System.out.println(re.nextString());
}
}
re.endObject();
}
}