最近用到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>
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"}]
}
}
如有不足之處多多指正!!!