50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

JSON-P 1.1 现已发布公开预览版

  • 2017-03-14
  • 本文字数:1902 字

    阅读完需:约 6 分钟

JSR 374(JSON-P 1.1 版本)的公开预览版现在已经开放,JSON-P 是一个针对处理 JSON 的 Java API。这个版本有望和 JSON 绑定库(JSON-B)的 Java API 一同被添加到 Java EE 8 的发布版本中,并且它还保持了 JSON-P 当前所支持的 JSON IETF标准。它提供了如下支持:

在 2013 年,JSON-P 作为 Gson Jackson 的替代方案,被引入到 J2EE 7 的发布版本中。它被设计用于解析、生成和查询标准的 JSON 文档。

JSR-367 是 JSON 绑定库的 Java API,它也被纳入了 Java EE 8 的发布版本中。JSON-B 被设计用来将 JSON 与 Java 中的对象绑定起来。InfoQ 对之前 JSON-B 公开预览版的发布也有过报道

入门指南

我们先从 JSON-P 的解析器(Parser)和指针(Pointer)的一个例子开始入门,考虑如下的 JSON 文档:

复制代码
[
{
"publication":"New Vaadin Spring Release Introduces Enhanced View Management",
"publicationDate":"2016-12-30 00:00:00",
"author":"Michael Redlich",
"publicationType":"Article",
"publisher":"C4Media"
},
{
"publication":"Pivotal Releases First Milestone of Next-Generation Spring Data Featuring Reactive Database Access",
"publicationDate":"2017-01-19 00:00:00",
"author":"Michael Redlich",
"publicationType":"Article",
"publisher":"C4Media"
},
{
"publication":"Netflix Introduces Hollow, a Java Library for Processing In-Memory Datasets",
"publicationDate":"2017-01-31 00:00:00",
"author":"Michael Redlich",
"publicationType":"Article",
"publisher":"C4Media"
}
]

这个 JSON 文档可以使用JsonParser进行解析:

复制代码
InputStream fis = new FileInputStream(JSON_FILE);
JsonParser parser = Json.createParser(fis);
while(parser.hasNext()) {
JsonParser.Event event = parser.next();
switch(event) {
case START_ARRAY:
case END_ARRAY:
case START_OBJECT:
case END_OBJECT:
case VALUE_FALSE:
case VALUE_NULL:
case VALUE_TRUE:
System.out.println(event.toString());
break;
case KEY_NAME:
System.out.print(event.toString() + " " + parser.getString() + " - ");
break;
case VALUE_STRING:
case VALUE_NUMBER:
System.out.println(event.toString() + " " + parser.getString());
break;
}
}
fis.close();

通过使用JsonPointer,我们能够找到 JSON 文档中的特定元素:

复制代码
InputStream fis = new FileInputStream(JSON_FILE);
JsonReader jsonReader = Json.createReader(fis);
JsonArray jsonArray = jsonReader.readArray();
JsonPointer pointer = Json.createPointer("/1/publication");
JsonValue publication = pointer.getValue(jsonArray);
System.out.println(i + ": " + publication);
fis.close();

这个例子中找到并且显示出了上述 JSON 文档中的第二个 publication。我们在 GitHub 上准备了一个完备的实例程序,其中包括 JSON-P、Gson 以及 Jackson。

最新的 JSON-P 1.1规格书能够在 JSR-374 网站下载到。

大名鼎鼎的Java EE 传播者 Reza Rahman 最近发布了一篇博客,他在其中阐述了 JSON 在 Java EE 8 中起到的作用:

这两个 API 对于加强 JSON 在 Java 中的地位至关重要,就像 JAXP(处理 XML 的 Java API)和 JAXB(XML 绑定库的 Java API)在许多年前所起的作用一样。通过这两个 API,Java 开发者可以简单地将 JSON 视为另一种 Java 序列化格式。不需要过多的第三方库和配置了:JSON 处理变得极其简单。在我看来,这些 API 非常关键,它们应该被纳入一个模块化的 Java SE 版本中,就像是 JAXB 和 JAXP 已经成为了 Java SE 中的一部分一样。

JSON-P 和 JSON-B 的最终版本有望在 2017 年 4 月发布。

其它资源

关于 JSON-P 的其它更多信息请访问如下资源:

查看英文原文: Public Review of JSON-P Specification 1.1 is Now Open


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-03-14 19:002510

评论

发布
暂无评论
发现更多内容

怎样做用YashanDB构建企业统一数据管理平台?

数据库砖家

3D数字绘画和雕刻 Mudbox 2025新功能

Rose

2025Java面试八股①(含121道面试题和答案)

王中阳Go

Java 面试

Ae/Pr/视觉特效和转场BCC插件 Boris FX Continuum 2023亮点功能

Rose

深入了解YashanDB数据库的功能与模块

数据库砖家

使用YashanDB时如何进行有效的查询优化

数据库砖家

整合YashanDB数据库与人工智能技术的优势

数据库砖家

如何实现YashanDB数据库的负载均衡

数据库砖家

如何应对YashanDB数据库中的数据一致性挑战

数据库砖家

使用YashanDB进行实时数据分析的完整流程

数据库砖家

YashanDB数据库安装与配置的详细步骤

数据库砖家

构建基于YashanDB数据库的分布式事务管理系统技术分析

数据库砖家

怎样做轻松迁移至YashanDB数据库避免数据丢失

数据库砖家

苹果macOS 26兼容设备 macos 26完整pkg安装程序

Rose

多格式文件在线预览,提升移动设备文件处理效率与体验

HarmonyOS SDK

harmoyos

如何优化YashanDB数据库以提升数据处理速度?

数据库砖家

优化YashanDB查询逻辑提高响应速度

数据库砖家

Hype 4 Pro 4.1.19 - 创建动画和交互式的Web内容

Rose

YashanDB数据库自动化测试方案

数据库砖家

使用YashanDB数据库进行日志数据管理

数据库砖家

Ableton Live 12 Suite v12.2中文版注册机+许可证

Rose

如何通过YashanDB实施弹性计算环境的数据管理

数据库砖家

怎样做YashanDB支持高性能事务处理

数据库砖家

2025 年 MQTT 技术趋势:驱动 AI 与物联网未来发展的关键动力

EMQ映云科技

mqtt emqx MCP

微信小程序上线后的运维

北京木奇移动技术有限公司

微信小游戏 软件外包公司 游戏外包公司

怎样做YashanDB数据一致性校验,确保业务准确?

数据库砖家

怎样做数据库负载高峰应对?YashanDB动态调节机制

数据库砖家

云原生数据库架构设计指南——基于YashanDB的方案解析

数据库砖家

三大 Mac 软件下载站,总有一款适合你!

晨光熹微

如何通过YashanDB丰富企业的客户数据

数据库砖家

如何在YashanDB中管理用户权限与角色

数据库砖家

JSON-P 1.1现已发布公开预览版_Java_Michael Redlich_InfoQ精选文章