要开始使用JSON-P,您需要Maven中央存储库中的以下依赖项。
<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1</version>
</dependency>
JSON指针定义了一个字符串表达式,该表达式引用JSON文档的层次结构内的元素。通过JSON指针表达式,您可以通过检索,添加,删除和替换由表达式引用的元素或值来访问和操作JSON文档。
入口API是javax.json.JsonPointer接口。通过调用javax.json.Json 类上的静态工厂方法createPointer(String expression)并将其传递给指针表达式来创建实例。
如果下面给出了JSON文档,并且您想要检索title元素的值,则可以创建JSON指针表达式 /title。
{
"title": "Java EE: Only What's New",
"author": "Alex Theedom",
"chapters": [
"Chapter 1: Java EE 8 What’s New Overview",
"Chapter 2: Java API for JSON Binding 1.0 (JSR 367)",
"Chapter 3: Java EE Security API 1.0 (JSR 375)"
],
"released": true,
"pages": 300,
"sourceCode": {
"repositoryName": "Java-EE-8-Only-Whats-New",
"url": "github.com/readlearncode/"
},
"otherBooks": [
{
"title": "Professional Java EE Design Patterns",
"length": 350
}
]
}
JsonObject jsonObject = ... create JSONObject from JSON document ...;
下面的代码片段创建一个JsonPointer 并引用title 元素。然后它调用传递JsonObject来查询的getValue()方法。
JsonValue jsonValue = Json.createPointer(“/ title”)。getValue(jsonObject);
要向JSON文档添加(或插入)值,请遵循与检索相同的逻辑,方法是使用JSON指针表达式来标识文档中的插入点。以下代码片段将新的“category”:“Programming” JSON对象添加到文档的根目录。
JsonObject jsonObject = Json
.createPointer("/category")
.add(jsonObject, Json.createValue("Programming"));
返回的JsonObject 是整个新的修改对象。
删除过程需要将删除的值的位置表示为JSON指针表达式。下面的代码片段删除title 元素,并将修改的JSON文档作为JsonStructure 实例返回
JsonStructure jsonStructure = Json.createPointer(“/ title”)。remove(jsonObject);
要替换要替换的元素的JSON指针表达式,并将替换元素传递给replace()方法。下面的代码片段替换title 元素的值并返回修改后的JSON文档。
JsonStructure jsonStructure = Json
.createPointer("/title")
.replace(jsonObject, Json.createValue("Java EE 8"));
可以使用containsValue() 方法测试某个位置存在的值。下面的代码片段测试以查看它在由JSON指针表达式/ doesNotExist表示的位置处有一个值。
Boolean containsValue = Json
.createPointer("/doesNotExist")
.containsValue(jsonObject);
上面这些,这就是关于JSON Processing新功能的第一篇文章。
http://blog.xqlee.com/article/408.html