Java 中 JSON 的使用
类库选择
Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。
下面是几个常用的 JSON 解析类库:
Gson
: 谷歌开发的 JSON 库,功能十分全面。FastJson
: 阿里巴巴开发的 JSON 库,性能十分优秀。Jackson
: 社区十分活跃且更新速度很快。
以下我们将基于 FastJson
讲解。
Maven配置
在 Maven 构建的项目中,在 pom.xml 文件中加入以下依赖即可。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
编码
从 Java 变量到 JSON 格式的编码过程如下:
public void testJson() {
JSONObject object = new JSONObject();
//string
object.put("string","string");
//int
object.put("int",2);
//boolean
object.put("boolean",true);
//array
List<Integer> integers = Arrays.asList(1,2,3);
object.put("list",integers);
//null
object.put("null",null);
System.out.println(object);
// {"boolean":true,"string":"string","list":[1,2,3],"int":2}
}
解码
从 JSON 对象到 Java 变量的解码过程如下:
public void testJson2() {
JSONObject object = JSONObject
.parseObject("{\"boolean\":true,\"string\":\"string\",\"list\":[1,2,3],\"int\":2}");
//string
String s = object.getString("string");
System.out.println(s);
//int
int i = object.getIntValue("int");
System.out.println(i);
//boolean
boolean b = object.getBooleanValue("boolean");
System.out.println(b);
//list
List<Integer> integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class);
integers.forEach(System.out::println);
//null
System.out.println(object.getString("null"));
}