JSONObject,JSONArray是JSON的两个子类。

首先我们来看JSONObject源码:

fastjson之JSONObject、JSONArray-LMLPHP

会发现JSONObject是继承Map<String, Object>,并且都是使用的Map中的方法。可以说JSONObject相当于Map<String, Object>

看个具体的列子:

  /**
* 将Map转成JSONObject,然后添加元素,输出
*/
@Test
public void testJsonObject() {
Map<String, Object> testMap = new HashMap<>();
testMap.put("key1", "value1");
testMap.put("key2", "value2"); JSONObject jsonObj = new JSONObject(testMap);
jsonObj.put("key3", "value3");
System.out.println(jsonObj);
System.out.println(jsonObj.get("key2"));
}

运行结果:

{"key1":"value1","key2":"value2","key3":"value3"}
value2

看JSONArray的源码:

fastjson之JSONObject、JSONArray-LMLPHP

会发现JSONArray是继承List<Object>,并且都是使用的List中的方法。可以说JSONArray相当于List<Object>

具体的列子:

  /**
* 将List对象转成JSONArray,然后输出
*/
@Test
public void testJsonArray() {
List<Object> list = new ArrayList<>();
list.add("home");
list.add();
list.add(true);
list.add(new XwjUser(, "Hello World", new Date())); JSONArray jsonArr = JSONArray.parseArray(JSON.toJSONString(list));
System.out.println(jsonArr);
}

运行结果:

["home",,true,{"id":,"message":"Hello World","sendTime":}]
04-28 17:43