json-tree api_什么是JSON处理(JSON-P API)?

json-tree api

Java EE中的JSON-P简介

JSON处理1.0( JSR 353 )的Java API是一个低级,轻量级的JSON解析器和生成器,它提供了在属性和值级别上操作JSON数据的能力。

JSR 353提供了两种JSON处理模型: 对象模型和模型。 这两个模型都可以生成JSON数据并将其输出到流(例如平面文件)中,并且两个模型都可以读取数据。 但是,流模型在处理大量JSON数据时特别有效。 这允许实现数据导入功能以及即时转换此类数据。

但是,流模型在处理大量JSON数据时特别有效。 这允许实现数据导入功能以及即时转换此类数据。

JSON-P对象模型

javax.json包提供了用于处理JSON数据的对象模型API。 它包括为JSON结构建模的类和用于JSON读取器和写入器的工厂。

Object模型将构成JSON数据结构的元素表示为对象。 例如,JSON数组由javax.json.JsonArray类表示,该类又实现List接口。

JSON对象由实现Map接口的javax.json.JsonObject类表示。

javax.json.Json类包括各种工厂方法,这些方法可创建JsonGenerator , JsonParser和JsonReader实例。

以下代码段从JSON文档创建JSONObject实例,然后从其属性中检索数据。

1: private String json = "{\"id\": 123456, \"title\": \"Fun with JSON-Processing\", \"published\": true}";2: JsonReader jsonReader = Json.createReader(new StringReader(json));
3: JsonObject jsonObject = jsonReader.readObject();
4: jsonReader.close();
5: jsonObject.getInt("id")
6: jsonObject.getString("title")
7: jsonObject.getBoolean("published")

第1行是我要处理的JSON文档。 我创建一个StringReader对象的实例,并将其传递给JSON文档,该文档通过createReader()静态方法传递给JsonReader

我在第3行将JSON文档读入JsonObject实例,并在第4行关闭阅读器。

现在有了JsonObject,我可以通过将属性名称传递给getString()方法来读取JSON属性的值。

此示例的代码存储在此文章随附的GitHub存储库中。

JSON-P流模型

javax.json.streaming包提供了解析和生成JSON数据的Streaming模型API。 它包括用于创建解析器和生成器的工厂。

它的实现方式完全不同,而且级别较低。 从本质上讲 ,有两个主要的工厂来生成和解析JSON数据,它们是JsonGeneratorFactory和JsonParserFactory 。 这些工厂面向写入和读取数据流。

通过链接将数据添加到缓冲区中的方法,然后通过调用flush或close方法将其刷新到输出流,来完成JSON数据的写入。

JSON数据以流方式进行解析,并且被设计为读取JSON数据的最有效方法。 解析器是从InputStreamReader输入源创建的。

以下代码段通过使用JsonObjectBuilder上的构建器方法构造JSONObject实例来创建它,然后从JsonObject检索数据。

1: JsonObject jsonObject = Json.createObjectBuilder().add("id", 123456).add("title", "Fun with JSON-Processing").add("published", true).build();2: jsonObject.getInt("id")
3: jsonObject.getString("title")
4: jsonObject.getBoolean("published")

在第1行上,构造了JsonObject 。 如您所见,它从Json类调用了静态createObjectBuilder()方法,我为需要的JsonObject拥有了许多属性调用add方法。 在这种情况下,我需要三个属性:id,title和published。 最终方法是构造JsonObjectbuild()方法。

第2到4行在JsonObject的第1行上调用了getter方法,并像上一个示例一样,一个接一个地检索属性值。

此示例的代码存储在此文章随附的GitHub存储库中。

接下来是什么?

如果您喜欢本文,您将喜欢我为Lynde.com录制的新的Java EE JSON处理课程。 在本课程中,我将深入研究整个API,将其视为对象和流模型。 我使用了大量的代码示例,并给您提出挑战,以帮助您提高学习效率。

进一步阅读

我经常发布Java EE技术,因此您可能对以下内容感兴趣:

  • 上下文和依赖注入 (CDI)
  • 企业Java Bean (EJB)
  • JSP,JSP和表达语言
  • RESTful Web服务

翻译自: https://www.javacodegeeks.com/2017/09/json-processing-json-p-api.html

json-tree api

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

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

相关文章

适合利用计算机模拟的是,计算机模拟在数学建模中的应用

计算机模拟在数学建模中的应用计算机模拟是按时间来划分的,因为计算机模拟实质上是系统随时间变化而变化的动态写照,以下是小编搜集整理的一篇探究计算机模拟在数学建模应用的论文范文,供大家阅读参考。【摘要】本文主要阐述了如何利用计算机…

噪音声压和声功率的区别_南昌汽车隔音,深入了解汽车噪音的来源、危害以及解决方案...

汽车噪音带来的危害:汽车噪音对人体健康的影响是多方面的。噪音作用于人的中枢神经系统,使人们大脑皮层的兴奋与抑制平衡失调,导致条件反射异常,使脑血管张力遭到损害。这些生理上的变化,在早期能够恢复原状&#xff0…

Linux 命令之 which -- 查找并显示给定命令的绝对路径(查找命令的位置/查询命令的位置/搜索命令的位置/查看命令的位置)

文章目录一、命令介绍二、选项参数三、参考示例(一)查找 java 命令的位置一、命令介绍 which 命令的作用是在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。 运维人员在日常工作中经常使用 which 命令…

lua加密教程_我们相信加密! 教程

lua加密教程许多人认为加密是一个复杂的主题,这很难理解。 可以实现其某些方面,但是每个人都可以理解它在更高层次上的工作方式。 这就是我要处理的这篇文章。 用简单的术语解释它是如何工作的,然后使用一些代码。 是的,我们信任…

生产用计算机软件管理台账,计算机台账管理系统

计算机台账管理系统计算机台账管理系统是什么?什么是计算机台账管理系统?对于设备管理而言,设备台账是其重要的组成部分,计算机台账管理系统对设备的编号、适用规格、年限、使用部门等具体信息进行管理,方便设备资产的…

Linux 查看数据库MySQL安装文件和安装目录的命令

文章目录数据库 MySQL 相关目录说明/var/lib/mysql/usr/bin/usr/share/mysql/usr/lib/mysql/etc/my.cnf查看 MySQL 相关文件/目录的命令查看已安装的 MySQL 相关软件包名称查看某个软件包的所有安装文件查看 MySQL 相关的所有文件使用命令 find 查找含有 mysql 关键字的文件路径…

java关键字和标识符_Java数据类型和标识符

java关键字和标识符在本教程中,我们将了解Java中的数据类型和标识符。 Java语言具有丰富的数据类型实现。 数据类型指定大小和可以存储在标识符中的值的类型。 Java数据类型分为两类: 原始数据类型 非原始数据类型 原始类型 Java定义了八种原始数据…

fcpx怎么合成延时摄影_延时摄影合成终极后期教程

原来常见的延时摄影,一般都是软件生成或视频加速实现,这种方法简单快捷,但是后期处理空间小,画质差。现在追求高画质都会采用拍摄照片,后期合成,索尼等相机型号,自带有间隔拍摄功能,…

狂妄之人怎么用计算机弹,【B】 Undertale Sans战斗曲 MEGALOVANIA狂妄之人

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼66/ 98868955/ 98868944/ 98868933/ 98868966/ 98868955/ 98868944/ 98868933/ 98868966/ 98868955/ 98868944/ 98868933/ 98868966/ 98868955/ 98868944/ 98868933/ 9886898 88 8 866 888998689 8889-* ///-/* 99 9(快速按) */…

Mac OS 在远程主机(Linux 系统)上使用命令执行 sql 脚本文件(使用的是 MySQL 数据库)

文章目录使用命令 mysql 执行脚本文件连接远程主机后,直接使用命令 mysql进入 MySQL 的 bin 目录后,再执行 mysql 命令使用命令 source 执行脚本文件sql 脚本文件内容:use production; BEGIN; INSERT INTO td_dictionary (dict_group,dict_co…

计算机网络的拓扑模型,基于复杂网络模型的计算机网络拓扑结构研究

一篇基于复杂网络模型的计算机网络拓扑结构研究论文第卷期第年月计算机科学基于复杂网络模型的计算机网络拓扑结构研究杜彩凤中国石油大学摘,东营,要,随着计算机网络的快速发展网络结构日益复杂传统的随机网络模型已很难对其拓扑特性作出客观的描,.述因此复杂网络理论为计算机网…

交华为换机access配置_华为交换机VLAN内Proxy ARP配置示例

华为交换机VLAN内Proxy ARP配置示例1、组网需求图1 VLAN内Proxy ARP组网示例图如上图1所示,Switch的接口GE1/0/2和GE1/0/1属于同一个sub-VLAN2。该sub-VLAN属于super-VLAN3。要求:属于同一VLAN2的两台主机hostA和hostB之间二层隔离。hostA和hostB之间通过…

java中regex_Java 9中的新Regex功能

java中regex最近,我收到了Packt出版的Anubhava Srivastava提供的免费书籍“ Java 9 Regular Expressions” 。 这本书是一个很好的教程,它向想要学习正则表达式并从头开始的任何人介绍。 那些知道如何使用正则表达式的人可能仍然很有趣,以重申…

mvc @html.editorfor,在MVC中,@Html.EditorFor(m = ( )_CSharp_开发99编程知识库

1 。Html.EditorFor(m > m)顯示整個模型編輯器。Html.EditorFor(m > m.propertyName)顯示模型的特定屬性編輯器。2 。Html.EditorFor(m > m)等於 Html.EditorFor(t > t)或 Html.EditorFor(randomName > randomName). 名稱並不重要,只是參數的名稱。 …

如何将本地 Windows 电脑中的文件复制(上传)到远程的 Windows 服务器主机上

文章目录第一步:点击「远程桌面连接」第二步:输入远程主机 IP 和 port第三步:设置本地目录共享第四步:点击「连接」按钮,输入登录用户名和密码第五步:复制本地文件到远程主机上第一步:点击「远程…

jax-rs jax-ws_什么是JAX-RS注释? (第3部分)

jax-rs jax-wsJAX-RS注释概述(第3部分) 这是一个由三部分组成的系列,介绍了用于实现REST端点的注释。 在JAX-RS批注的第二部分中,您了解了: Path注释和PathParam QueryParamter批注 Produces批注 Consumes批注 在…

股票实例_注意了!手中的股票涨停,但是却封不住反复打开,说明了什么?看懂持股不慌...

手中的股票涨停,却封不住反复打开,说明了什么?如果一只股票收到涨停板但封不牢,说明在涨停位反复打开,而且成交比较大,因为一只股票出现涨停的时候,一般会有大量的买单排除在买位的位置封住涨停&#xff0…

FTP 两种传输模式 Binary 和 ASCII 的区别

文章目录区别原理分析建议常规作法习惯作法区别 ASCII 模式和 Binary 模式的区别是换行符的处理,Binary 模式不对数据进行任何处理,ASCII 模式将换行符转换为目标主机操作系统的换行符,换行符号在Unix下是\n(0A),Windows下是\r\n…

东北电力大学计算机专业几本,东北电力大学是几本?东北电力大学怎么样?

东北电力大学的特色专业主要是动力工程及工程热物理、电气工程、土木工程等,每年报考此类专业人数较多,每年的分数线都在一本线以上,下面是学习啦小编给大家带来的东北电力大学是几本,供大家参考!东北电力大学是几本东北电力大学是…

jax-rs jax-ws_什么是JAX-RS注释? (第2部分)

jax-rs jax-wsJAX-RS注释概述(第2部分) 这是一个由三部分组成的系列,介绍了用于实现REST端点的注释。 在JAX-RS注释的第一部分中,您了解了: ApplicationPath批注 Path注释 GET HTTP方法注释 POST HTTP方法注释 …