写点什么

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

评论

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

Navicat Premium 15 for Mac/Win 中文安装包下载

你的猪会飞吗

mac单机游戏

低代码技术革新:高效构建现代人事管理系统

天津汇柏科技有限公司

低代码开发

2024 「全球软件研发技术大会】-刘兴东分享京东的AIGC革新之旅

京东科技开发者

利用AI智能体实现自动化公开课

霍格沃兹测试开发学社

人工智能赋能教育:华为云推动宝安中学迈进教育+AI新时代

最新动态

Advanced RAG 10:引入检索评估、知识精练的 CRAG 技术详解

Baihai IDP

AI 白海科技 LLMs 企业号 7 月 PK 榜 rag

大模型文档神器:合合信息大模型加速器

herosunly

大模型 合合信息 AIGC 文档神器 合合信息大模型加速器

极具未来感的京东.Vision来了!最潮的人已收藏!

京东科技开发者

IBM SPSS Statistics 26破解版下载 spss统计软件

Rose

PDF Reader Pro for mac(全能pdf编辑阅读软件)v4.0.3直装激活版

Rose

为何我们决定从零开始创建 NGINX Gateway Fabric

NGINX开源社区

开源 开源软件 NGINX Ingress Controller API 开发 Kubernets

透视开源生态,OSGraph——GitHub全域数据图谱的智能洞察工具

汀丶人工智能

人工智能

证券行业采购堡垒机的六大必要性看这里!

行云管家

网络安全 金融 证券 数据安全 堡垒机

Termius for Mac(跨平台SSH客户端) v8.4.0多语言版

Rose

Acrobat Pro DC 2023 下载 含激活补丁

Rose

深度解析 PostgreSQL Protocol v3.0(三)— 流复制(上)

KaiwuDB

postgresql KaiwuDB 流复制

教你基于MindSpore用DCGAN生成漫画头像

华为云开发者联盟

人工智能 模型训练 华为云 华为云开发者联盟 企业号2024年7月PK榜

SecureCRT下载,securecrt 破解版,终端SSH仿真工具

Rose

Final Cut Pro v10.8.0 中文版 Mac上FCPX经典视频剪辑软件

Rose

淘宝商品详情api接口:快速获取商品主图,价格,

技术冰糖葫芦

API 文档 API 开发 API 协议 pinduoduo API

Mac数据库软件,Navicat Premium 破解版,Navicat Premium 15下载

Rose

文献解读-多组学-第十七期|《基于多组学分析和综合模型的三阴性乳腺癌腋窝淋巴结转移预测》

INSVAST

基因数据分析 生信服务 多组学

OpenAI进军AI健康领域;首款搭载Apple Intelligence的智能家居设备将是桌面机器人|AI日报

可信AI进展

人工智能

Cornerstone for Mac(最好用的SVN管理工具)v4.2永久激活版

Rose

数字身份管理发展趋势:访问控制智能化

芯盾时代

AI 数字身份 iam 统一身份认证 访问控制

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS ConnectX-3 网卡定制版 (集成驱动版)

sysin

macos esxi OEM ConnectX-3 网卡驱动

从CVE-2024-6387 OpenSSH Server 漏洞谈谈企业安全运营与应急响应

京东科技开发者

Java开发分析软件,JProfiler破解版【永久激活版】

Rose

公开课 | 利用AI智能体实现自动化公开课

测试人

软件测试

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