java使用JSON编码与解码

编码

从 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);
}

在上例中,首先建立一个 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}");
  String s = object.getString("string");//string
  System.out.println(s);
  int i = object.getIntValue("int");  //int
  System.out.println(i);
  boolean b = object.getBooleanValue("boolean");  //boolean
  System.out.println(b);
  List<Integer> integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class);  //list
  integers.forEach(System.out::println);
  System.out.println(object.getString("null"));  //null

}

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

打印结果如下:
string
2
true
1
2
3
null
JSON 对象与字符串的相互转化

方法

作用

JSON.parseObject()

从字符串解析 JSON 对象

JSON.parseArray()

从字符串解析 JSON 数组

JSON.toJSONString(obj/array)

将 JSON 对象或 JSON 数组转化为字符串