写点什么

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:002116

评论

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

WorkPlus企业即时通讯国密加固-为企业信息安全保障

BeeWorks

HAS2024:华为云以系统性创新加速千行万业智能化升级

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号2024年4月PK榜 HAS2024

对话阿里云佘俊泉:边缘云的持续突破和创新

MasterInTech

阿里云 边缘云

好用的即时通讯系统,如何选择适合政企即时沟通软件?

BeeWorks

碳实践|手把手教你开展组织碳核算

AMT企源

数字化转型 双碳 碳核算

NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学

汀丶人工智能

text2sql NL2SQL

IM即时通讯软件,WorkPlus私有化部署全面支持信创环境

BeeWorks

一个埋藏9年的底层bug发现历程

阿里技术

故障 bug 故障排查 故障排查/诊断

NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道

汀丶人工智能

自然语言处理 text2sql NL2SQL

全球AI音乐会,第一次听见中国声音

脑极体

AI

一个游戏服务器多少钱?价格与配置的完美指南

一只扑棱蛾子

服务器

我们开源啦!一键部署免费使用!Kubernetes上直接运行大数据平台!

智领云科技

开源 大数据平台 K8s 多集群管理

【论文速读】| GPTFUZZER:利用自动生成的越狱提示对大型语言模型进行红队测试

云起无垠

企业im即时通讯工具推荐,企业内部即时通讯软件工具怎么选?

BeeWorks

展出规模超50万平米“2024第26届深圳高交会”招商工作全面启动

AIOTE智博会

高交会 高新技术展 深圳高交会

Python与数据库交互的最佳实践

技术冰糖葫芦

api 货币化 API 接口 pinduoduo API

Create 2024 分论坛:百度大模型安全解决方案护航开发者一起创造未来

百度安全

Serial for Mac :全能串口调试工具

iMac小白

Serial下载 Serial破解版 Serial mac

BizDevOps全局建设思路:横向串联,纵向深化

嘉为蓝鲸

DevOps Dev Ops BizDevOps

GreatSQL 死锁案例分析

GreatSQL

区块链的原理、技术、应用领域

天津汇柏科技有限公司

区块链

如何基于香橙派AIpro对视频/图像数据进行预处理

华为云开发者联盟

华为云 数据预处理 昇腾CANN 华为云开发者联盟 企业号2024年4月PK榜

旅游电商的智能化升级:携程景点详情API引领新潮流

技术冰糖葫芦

API 接口 API 测试 pinduoduo API

GPT-5发布时间确定!全面训练、更强推理能力!

蓉蓉

人工智能 openai ChatGPT

JetBrains WebStorm 2024:卓越的前端开发工具mac/win

iMac小白

WebStorm 2024下载 WebStorm 2024 mac WebStorm 2024破解版

Ghost Buster Pro for Mac:轻松优化与维护系统新选择

iMac小白

Ghost Buster Pro下载 Ghost Buster Pro mac Ghost Buster Pro破解

调试 WebSocket API 教程实践

Apifox

程序员 前端 后端 websocket WebSocket API

腾讯的面试,强度拉满!

王中阳Go

Java Go 后端 面试题 面经

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