JSON指针:JSON-P 1.1概述系列

Java EE 8包括对JSON处理API的更新,并使其与JSON的最新IEFT标准保持同步。 他们是:

  • JSON指针 (RFC 6901)
  • JSON修补程序(RFC 6902)
  • JSON合并补丁(RFC 7396)

我将在这个迷你系列中涵盖这些主题。

入门

要开始使用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指针表达式,您可以通过检索,添加,删除和替换表达式引用的元素或值来访问和操作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元素。 然后,它将调用getValue()方法,该方法将传递给JsonObject进行查询。

JsonValue jsonValue = Json.createPointer("/title").getValue(jsonObject);

增值

要向JSON文档添加(或插入)值,请遵循与检索相同的逻辑,即使用JSON指针表达式来标识文档内的插入点。 以下代码段将新的“类别”:“编程” 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处理的新功能的第一篇文章。 目前为止就这样了。

翻译自: https://www.javacodegeeks.com/2018/04/get-to-know-json-pointer-json-p-1-1-overview-series.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java获取oracle字段注释_java读取ORACLE数据库表字段信息以及注释信息

最近在做编程工具&#xff0c;便于快速开发程序&#xff0c;用过太多框架&#xff0c;但是发觉只有自己制作代码工具才开发起来痛快。这个类是用来读取oracle数据库表结构的&#xff0c;也包括列的注释&#xff0c;对于生成代码有很好的帮助。1.[文件] OracleTable.java ~ 3KB …

(3.2)HarmonyOS鸿蒙双击事件

跟单击事件类似&#xff0c;双击事件也有4种写法&#xff0c;这里采用当前类作为实现类这种写法&#xff0c;其他写法可以参见《单击事件的4种写法》。不同的是双击事件需要的是Component.DoubleClickedListener。 实现步骤: 1.通过id找到组件。 2.给需要的组件设置双击事件。…

java文件和xml文件_用Java分割大型XML文件

java文件和xml文件上周&#xff0c;我被要求用Java编写一些东西&#xff0c;该东西能够将一个30GB的XML文件拆分为可配置文件大小的较小部分。 文件的使用者将是一个中间件应用程序&#xff0c;该应用程序在XML的大尺寸方面存在问题。 在幕后&#xff0c;它使用某种DOM解析技术…

oracle java 并发_【转】JAVA并发教程(ORACLE官网资料)

本文是Oracle官方的Java并发相关的教程&#xff0c;感谢并发编程网的翻译和投递。计算机的使用者一直以为他们的计算机可以同时做很多事情。他们认为当其他的应用程序在下载文件&#xff0c;管理打印队列或者缓冲音频的时候他们可以继续在文字处理程序上工作。甚至对于单个应用…

(3.3)HarmonyOS鸿蒙长按事件

跟单击事件类似&#xff0c;长按事件也有4种写法&#xff0c;这里采用当前类作为实现类这种写法&#xff0c;其他写法可以参见《单击事件的4种写法》。 实现步骤: 1.通过id找到组件。 2.给需要的组件设置长按事件。 3.本类实现LongClickedListener接口。 4.重写onLongClicked方…

部署Spring Boot Angular App(Maven和Tomcat)的4种方法

在上一篇有关Spring Boot angular 5的文章中 &#xff0c;我们使用Spring Boot angular 5实现了一个完整的堆栈端到端Web应用程序。在本文中&#xff0c;我们将讨论在tomcat上部署Spring Boot和Angle App的不同方法。 我们将创建一个具有后端&#xff08;服务器&#xff09;和前…

java中true转换为int_在Java中将字节转换为int的最优雅的方式

示例代码&#xff1a;int a 255;byte b (byte) a;int c b & 0xff; // Here be dragonsSystem.out.println(a);System.out.println(b);System.out.println(c);所以我们从一个整数值255开始&#xff0c;将它转换成一个字节(变为-1)&#xff0c;然后使用魔术公式将其转换成…

(3.4)HarmonyOS鸿蒙滑动事件三个动作

接口名&#xff1a;TouchEventListener 滑动事件里面分为三个动作&#xff1a;按下&#xff0c;移动&#xff0c;抬起 PRIMARY_POINT_DOWN&#xff1a;按下 POINT_MOVE&#xff1a;移动 PRIMARY_POINT_UP&#xff1a;抬起 手机坐标&#xff1a; 手机左上角的点为原点。向右为…

计算机二级web题目(8.3)--简单应用题2

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1.在考生文件夹下的Web3目录中&#xff0c;存有3.htm文件&#xff0c;该文件不完…

计算机二级web题目(8.4)--综合应用题2

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1.在考生文件夹下的Web5目录中&#xff0c;存有5.htm文件&#xff0c;该文件不完…

创建存储,修改存储_安全地创建和存储密码

创建存储,修改存储几乎每次涉及用户配置文件时&#xff0c;都必须管理用户凭据&#xff0c;从而能够创建和存储用户密码。 通常应该使用哈希密码和盐分密码来准备数据库公开和通过使用Rainbow表进行哈希逆转。 但是&#xff0c;找到以明文形式存储的密码并不少见&#xff08;很…

mysql把一行保存到另一个表_MYSQL:如何复制整个行从一个表到另一个在MySQL与第二个表有一个额外的列?...

为了完善Zed的答案&#xff0c;并回答你的评论&#xff1a;INSERT INTO dues_storage SELECT d.*, CURRENT_DATE() FROM dues d WHERE id 5;见TJ Crowder的评论最安全的方法是完全指定插入和提取的列。 (对于应用程序)没有任何保证&#xff0c;这些将是您认为可能的顺序。inse…

Spring Security中的SecurityContext和SecurityContextHolder是什么?

SecurityContext和SecurityContextHolder是Spring Security的两个基本类。 SecurityContext用于存储当前经过身份验证的用户的详细信息&#xff0c;也称为原理。 因此&#xff0c;如果必须获取用户名或任何其他用户详细信息&#xff0c;则需要首先获取此SecurityContext 。 Sec…

codemirror java代码_codemirror使用(示例代码)

JS使用使用bower下载javascript bower i codemirror引入样式文件html 引入js文件html 文档结构html 初始化javascript // mode: "text/javascript", // mode: "text/css" window.onload function(){ var myCodeMirror CodeMirror.fromTextArea(document.…

(3.5)HarmonyOS鸿蒙上下左右方向滑动

需要获取按下时候的坐标和松开时候的坐标&#xff0c;并将两者进行比较。 ①MainAbilitySlice.java文件 可以根据使用情况做修改代码中判断处的限制偏差范围。 package com.example.yeman.slice;import com.example.yeman.ResourceTable; import ohos.aafwk.ability.Ability…

java selenium用js点击_Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?...

小编典典你可以通过以下任一过程解决它们&#xff1a;1.由于存在JavaScript或AJAX调用而无法单击元素尝试使用ActionsClass&#xff1a;WebElement element driver.findElement(By.id("navigationPageButton"));Actions actions new Actions(driver);actions.moveT…

(3.5)HarmonyOS鸿蒙多按钮点击事件

多按钮的点击事件其实与只有一个是类似的&#xff0c;只不过要在调用 onClick&#xff08;&#xff09;时进行判断&#xff0c;判断获取到的component是谁即可。 package com.example.yeman.slice;import com.example.yeman.ResourceTable; import ohos.aafwk.ability.Ability…

sql 注射_基本注射/资格赛,范围

sql 注射这是上周解决的DI / CDI基础知识的延续-在本文中&#xff0c;我将讨论基础注入&#xff0c;限定词和范围。 在上一个主题中&#xff0c;我们提供了有关DI / CDI概念的大量信息&#xff0c;我们还讨论了如何使用注释加载这些bean或类-这构成了对象的组成并创建了关于如…

计算机二级web题目(9.1)--综合选择题3

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1下列叙述中正确的是(D)。 A、栈是"先进先出"的线性表 B、队列是"…

java小程序 2048_微信小程序之游戏2048

主要用来锻炼逻辑思维能力image.png可以选模式image.png这里面主要解决的问题是&#xff1a;1.判断滑动方向//在滑动块级绑定滑动开始和滑动结束的方法很原始的方法&#xff0c;startFn时保存开始的(x,y),endFn时保存结束的(x1,y2),根据这四个参数 判断方向&#xff0c;算法在方…