构建和解析JSONObject、JSONArray_jsonobject.optjsonarray();

最近用到JSONObject,在此我们记录一下

1. 在项目中先导入依赖的jar包(一共6个依赖包),此处使用的是 net.sf.json
    <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <version>2.4</version>
        <classifier>jdk15</classifier>
    </dependency>
    <!-- 如果此依赖包报错可以注释掉-->
    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <!-- <version>1.9.3</version>-->
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>4.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.4</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>net.sf.ezmorph</groupId>
        <artifactId>ezmorph</artifactId>
        <version>1.0.4</version>
    </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
2. 直接上代码
package test;

import java.util.Iterator;
import java.util.Set;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JsonObjectAndJsonArrayTest {

	public static void main(String[] args) {
	    //  \ 是为了转译双引号 
		String json = "{\"key1\":\"value1\",\"key2\":\"value2\",\"key3\":\"value3\"}";
		// 解析jsonObject测试
		parseJsonObjectTest(json);
		// 解析jsonArray测试
		parseJsonArrayTest();
		// 构建jsonObject 和jsonArray 测试
		buildJsonObjcetTest();
	}
	/**
	 * 解析JSON串
	 */
	@SuppressWarnings({ "rawtypes", "static-access" })
	public static  void parseJsonObjectTest(String json) {
		JSONObject jsonObject = new JSONObject().fromObject(json);
		// 也可以先获取到json中所有的key值
		// Set keySet = jsonObject.keySet();
		Set entrySet = jsonObject.entrySet();
		Iterator iterator = entrySet.iterator();
		while(iterator.hasNext()) {
			Object next = iterator.next();
			String entry = next.toString();
			System.out.println(entry); //输出结果 key1=value1、key2=value2、key3=value3
		}
	}

	/**
	 * 解析JSONArray测试
	 */
	public static  void parseJsonArrayTest() {
		String json = "[{\"key10\":\"value10\",\"key20\":\"value20\"},{\"key30\":\"value30\",\"key40\":\"value40\"}]";
		//1. 把字符串类型的json数组对象转化JSONArray
		JSONArray jsonArray = new JSONArray().fromObject(json);
		for (int i = 0; i < jsonArray.size(); i++) {
			JSONObject jsonArray2 = jsonArray.getJSONObject(i);
			System.out.println(jsonArray2); //输出结果 {"key10":"value10","key20":"value20"}、{"key30":"value30","key40":"value40"}
			parseJsonObjectTest(jsonArray2.toString());// key10=value10、key20=value20 、...
		}
	}

	/**
	 * 构建JSONObject 和 JSONArray
	 *   一个或多个JSONObject构成一个JSONArray
	 */
	public static  void buildJsonObjcetTest() {
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("key1", "value1");
		jsonObject.put("key2", "value2");
		System.out.println("构建的jsonObject: "+jsonObject); //  {"key1":"value1","key2":"value2"}
		JSONObject jsonObject2 = new JSONObject();
		jsonObject2.put("key3", "value3");
		jsonObject2.put("key4", "value4");
		JSONArray jsonArray = new JSONArray();
		jsonArray.add(jsonObject);
		jsonArray.add(jsonObject2);
		System.out.println("构建的jsonArray: "+jsonArray);// [{"key1":"value1","key2":"value2"},{"key3":"value3","key4":"value4"}]
	}

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69

如有不足之处多多指正!!!