JSONArray介绍与操作

前面两篇主要介绍了JSON的基本概念和JS中对JSON的基本操作,这里再介绍一下Java端解析JSON的方法。

本文采用的JSON的解析包是JSON-lib,JSON-lib是一个JAVA端的JSON解析类库,可以将beans, maps, collections, java arrays和XML转化为JSON,反之亦然。

JSON-lib包的官网:

http://json-lib.sourceforge.net/

使用JSON-lib还需要一些依赖包:

  • jakarta commons-lang 2.5
  • jakarta commons-beanutils 1.8.0
  • jakarta commons-collections 3.2.1
  • jakarta commons-logging 1.1.1
  • ezmorph 1.0.6

下面先看一下代码以及输出结果:

_____________________________________________________________________________

代码:

public class JSONArr {
	
	public static void main(String[] args) {
		
		/**
		 * 通过字符串构建JSONArray
		 * 方法一:fromObject(字符串);
		 */
		JSONArray jrFromString = new JSONArray();
		String str = "[\"Java\", \"C++\"]";
		jrFromString = jrFromString.fromObject(str);
		System.out.println("JSONArray------>fromObject(字符串): " + jrFromString);
		
		/**
		 * 方法二:add(字符串);
		 */
		JSONArray jrFromString1 = new JSONArray();
		jrFromString1.add(str);
		System.out.println("JSONArray------>add(字符串): " + jrFromString1);
		
		System.out.println("____________________________________________________");
		
		/**
		 * 通过数组构建JSONArray
		 * 方法一:fromObject(字符串);
		 */
		JSONArray jrFromArray = new JSONArray();
		String[] arrStr = new String[3];
		arrStr[0] = "Java";
		arrStr[1] = "C++";
		arrStr[2] = "JavaScript";
		jrFromArray = jrFromArray.fromObject(arrStr);
		System.out.println("JSONArray----->fromObject(数组):  " + jrFromArray);
		
		/**
		 * 方法二:add(字符串);
		 */
		JSONArray jrFromArray1 = new JSONArray();
		jrFromArray1.add(arrStr);
		System.out.println("JSONArray----->add(数组):  " + jrFromArray1);
		
		System.out.println("____________________________________________________");
		
		/**
		 * 通过List构建JSONArray
		 * 方法一:fromObject(list)
		 */
		JSONArray jrFromList = new JSONArray(); 
		List list = new ArrayList<>();
		list.add("张三");
		list.add("李四");
		list.add("王五");
		jrFromList = jrFromList.fromObject(list);
		System.out.println("JSONArray----->fromObject(List): " + jrFromList);
		
		/**
		 * 方法二:addAll(list)
		 */
		JSONArray jrFromList1 = new JSONArray(); 
		jrFromList1.addAll(list);
		System.out.println("JSONArray----->addAll(List): " + jrFromList1);
		
		System.out.println("____________________________________________________");
		
		/**
		 * 通过Map构建JSONArray
		 * 方式一:fromObject(map)
		 */
		JSONArray jrFromMap = new JSONArray();
		Map map = new HashMap();
		map.put("Jack", 22);
		map.put("Lily", 20);
		map.put("Tom", 24);
		jrFromMap = jrFromMap.fromObject(map);
		System.out.println("JSONArray----->fromObject(Map): " + jrFromMap);
		
		/**
		 * 方式二:add(map)
		 */
		JSONArray jrFromMap1 = new JSONArray();
		jrFromMap1.add(map);
		System.out.println("JSONArray----->add(Map): " + jrFromMap1);
		
		System.out.println("____________________________________________________");
		
		/**
		 * 通过对象构建JSONArray
		 */
		JSONArray jrFromObject = new JSONArray();
		jrFromObject.add(new Person("李明", 22));
		jrFromObject.add(new Person("张灵", 33));
		System.out.println("JSONArray----->add(对象): " + jrFromObject);
		
		System.out.println("____________________________________________________");
		
		/**
		 *直接通过add方法构建数据 
		 */
		JSONArray jsonArray = new JSONArray();
		jsonArray.add("aa");
		jsonArray.add("bb");
		jsonArray.add("cc");
		System.out.println("JSONArray----->add(): " + jsonArray);
		
	}

}

输出:

JSONArray介绍与操作_第1张图片

JSON-lib的API提供了几种操作Java元素的方法:

add(Object value)

fromObject(Object value)

addAll(Collection collection)

可以看出add(Object value)可以添加一个Java对象到JSONArray中,它可以是所有Java对象,fromObject(Object value)同样也可以接收所有Java对象,所不同的是add方法是将对象顺序添加到JSONArray数组的末尾,而fromObject方法是直接将相应的Java对象转化为数组,所以使用fromObject()方法将字符串、数组、集合和枚举转化为JSONArray对象会更有效。

addAll()方法,不难看出他操作的是Java中的集合对象。






 
  


你可能感兴趣的:(JSON)