本章节 将为大家介绍如何在 Java 语言中使用 JSON。

类库选择

Java中并没有内置JSON的解析 因此使用JSON需要借助第三方类库。

下面是几个常用的 JSON 解析类库:

  • Gson: 谷歌开发的 JSON 库 功能十分全面。
  • FastJson: 阿里巴巴开发的 JSON 库 性能十分优秀。
  • Jackson: 社区十分活跃且更新速度很快。

以下教程基于 FastJson 讲解。

环境配置

在 Maven 构建的项目中 在 pom.xml 文件中加入以下依赖即可。

<dependency><groupId>com.alibabagroupId><artifactId>fastjsonartifactId><version>1.2.47version>dependency>

编码与解码

编码

从 Java 变量到 JSON 格式的编码过程如下:

实例

public void testJson() {JSONObject object = new JSONObject();//stringobject.put("string","string");//intobject.put("int",2);//booleanobject.put("boolean",true);//arrayList<Integer> integers = Arrays.asList(1,2,3);object.put("list",integers);//nullobject.put("null",null);​System.out.println(object);}

在上例中 首先建立个 JSON 对象 然后依次添加字符串、整数、布尔值以及数组 最后将其打印为字符串。

输出结果如下:

{"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}");//stringString s = object.getString("string");System.out.println(s);//intint i = object.getIntValue("int");System.out.println(i);//booleanboolean b = object.getBooleanValue("boolean");System.out.println(b);//listList<Integer> integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class);integers.forEach(System.out::println);//nullSystem.out.println(object.getString("null"));​}

在上例中 首先从 JSON 格式的字符串中构造个 JSON 对象 之后依次读取字符串、整数、布尔值以及数组 最后分别打印 打印结果如下:

string2true123null

JSON 对象与字符串的相互转化

JSON.parseObject()从字符串解析 JSON 对象
JSON.parseArray()从字符串解析 JSON 数组
JSON.toJSONString(obj/array)将 JSON 对象或 JSON 数组转化为字符串

实例

//从字符串解析JSON对象JSONObject obj = JSON.parseObject("{"facesoho":"启蒙教育"}");//从字符串解析JSON数组JSONArray arr = JSON.parseArray("["启蒙教育","FACESOHO"]n");//将JSON对象转化为字符串String objStr = JSON.toJSONString(obj);//将JSON数组转化为字符串String arrStr = JSON.toJSONString(arr);

相关教程