vertx jsonArray jsonObject json指针
JSON
jsonobject 相当于一个Map<String,Object> , jsonArray相当于一个 List<Object>
JsonObject
构造方法,可以通过jsonString,构造,或者map构造。
1 2 3 4 5 6 7 8 9
| 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);
|
获取值 / 添加值 /键set /转成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
| 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);
String age1 = j1.getString("age"); System.out.println("获取值,为空则返回null:"+age1);
Set<String> strings = j1.fieldNames(); System.out.println("获取键的集合"+strings);
Map<String, Object> map = j1.getMap();
j1.put("foo","bar").put("num",123);
|
合并json
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) {
String jsonStrng = "{\"name\":\"小明\",\"class\":\"小学一年级\",\"school\":{\"name\":\"xx小学\",\"address\":\"北京\"}}"; JsonObject j1 = new JsonObject(jsonStrng);
String jsonStrng2 = "{\"name\":\"小明\",\"class\":\"小学一年级\",\"school\":{\"address\":\"安徽\"}}"; JsonObject j2 = new JsonObject(jsonStrng2); JsonObject j3 = j1.mergeIn(j2); System.out.println("合并json1:"+j3); }
|
打印输出
encode 方法 正常打印出json字符串(一行)
encodePrettily方法 格式化打印json(更容易观察)
JsonArray
构造方法
1 2 3 4 5 6 7 8
| String json = "[1, 2, 3, 4]"; JsonArray array = new JsonArray(json);
List<String> list = Arrays.asList("a", "b", "c", "d"); JsonArray array = new JsonArray(list);
|
基本操作,请查看api
JsonPointer json指针
json指针,类似于xml的xpath表达式,通过表达式可以直接获取对应位置的值。
基本用法如下
1 2 3 4 5 6 7 8 9 10
| String json = "{\"name\":\"小明\",\"class\":\"小学一年级\",\"school\":{\"name\":\"xx小学\",\"address\":\"北京\"}}"; JsonObject entries = new JsonObject(json);
JsonPointer append = JsonPointer.from("/school/address"); Object o = append.queryJson(entries); System.out.println(o);
|