1
| jsonobject 相当于一个Map<String,Object> , jsonArray相当于一个 List<Object>
|
1
2
3
4
5
6
7
8
9
| 构造方法,可以通过jsonString,构造,或者map构造。 ```java
String jsonStrng = "{\"name\":\"小明\"}";
JsonObject j1 = new JsonObject(jsonStrng);
Map<String,Object> map = new HashMap<>();
map.put("name","小明");
map.put("age","12");
JsonObject j2 = new JsonObject(map);
|
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
|
#### 获取值 / 添加值 /键set /转成map
```java
String jsonStrng = "{\"name\":\"小明\",\"class\":\"小学一年级\",\"school\":{\"name\":\"xx小学\",\"address\":\"北京\"}}";
JsonObject j1 = new JsonObject(jsonStrng);
//获取值
String name = j1.getString("name");
System.out.println("获取值:"+name);
//获取值,为空则返回默认值
String age = j1.getString("age", "空");
System.out.println("获取值,为空则默认值"+age);
//如果不提供默认值则返回null
String age1 = j1.getString("age");
System.out.println("获取值,为空则返回null:"+age1);
//获取键的set集合
Set<String> strings = j1.fieldNames();
System.out.println("获取键的集合"+strings);
//转成map
Map<String, Object> map = j1.getMap();
//put 可以连续的调用put方法
j1.put("foo","bar").put("num",123);
|
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
|
public static void main(String[] args) {
/*
{
"name": "小明",
"class": "小学一年级",
"school": {
"name": "xx小学",
"address": "北京"
}
}
*/
String jsonStrng = "{\"name\":\"小明\",\"class\":\"小学一年级\",\"school\":{\"name\":\"xx小学\",\"address\":\"北京\"}}";
JsonObject j1 = new JsonObject(jsonStrng);
//将此json内的值,替换成提供的jsonObject的值
String jsonStrng2 = "{\"name\":\"小明\",\"class\":\"小学一年级\",\"school\":{\"address\":\"安徽\"}}";
JsonObject j2 = new JsonObject(jsonStrng2);
JsonObject j3 = j1.mergeIn(j2);
System.out.println("合并json1:"+j3);
}
/*
mergeIn(JsonObject obj);
mergeIn(JsonObject obj,Boolean deep);
mergeIn(JsonObject obj,int deep);
第一个表示浅合并,只要键相同则直接替换,
第二个如果参数传true,则表示深度合并,即如果某个键对应的值也是json,则对值内的json也进行合并。
第三个可以指定合并的深度,深度内为深合并,深度外为浅合并。
上面的代码,浅合并结果为
{"name":"小明","class":"小学一年级","school":{"address":"安徽"}}
深合并结果为
{"name":"小明","class":"小学一年级","school":{"name":"xx小学","address":"安徽"}}
*/
|
1
2
| encode 方法 正常打印出json字符串(一行)
encodePrettily方法 格式化打印json(更容易观察)
|
1
2
| json指针,类似于xml的xpath表达式,通过表达式可以直接获取对应位置的值。
基本用法如下
|