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