從JSON-P 1.1 API中,直接得到的新JSON指針能做什么?本文將介紹一個挑戰(zhàn)和相應的解釋。
在下圖所示的代碼片段中給出了JSON文檔,使用JSON-P 1.1的JSON指針特性的結果是什么?
JSON對象的新形狀如下圖所示:
什么是JSON指針?
JSON指針是JSON處理1.1 API中的一個新功能,并可以使用最新的IEFT標準JSON指針進行更新。這個更新的API是Java EE 8發(fā)行版本的一部分。
那么JSON指針到底是個什么呢?一個JSON指針定義了一個字符串表達式,用它來標識JSON文檔中的特定值。這與XPointer用于識別XML文檔中的片段功能類似。
JSON指針活動
鑒于下圖所示的JSON文檔,類似數(shù)組中的第一個元素將通過JSON指針表達式來引用:/ likes / 0。
這里指的是元素值:Java。
如何使用JSON指針
入口API是JsonPointer接口。通過調用Json類的靜態(tài)工廠方法createPointer()來創(chuàng)建一個實例。下面的代碼片段創(chuàng)建了一個JsonPointer并引用了like數(shù)組中的第二個元素:
JsonPointer pointer = Json.createPointer("/likes/0");
JsonPointer API也可以通過添加、替換和刪除屬性來改變JSON文檔。
下面的代碼片段將值“Java EE 8”添加到like列表中:
pointer.add(jsonObject, Json.createValue("Java EE 8"));
在下面代碼片段中,替換了第三個索引位置處的值:
pointer = Json.createPointer("/likes/2");
JsonObject newJsonObject = pointer.replace(jsonObject, Json.createValue("Ice Cream"));
把它們放在一起,就有了添加like數(shù)組的元素和替換的代碼。完整的代碼片段如下圖所示:
代碼片段的結果輸出是: