jsr250-api_JSON处理的Java API(JSR-353)–流API
jsr250-api
Java很快将具有一组标准的API,作为Java EE 7的一部分处理JSON。该标准定义为JSR 353 – JSON处理的Java API (JSON-P),目前正在最终批准投票中。 JSON-P提供面向对象和基于流的方法,在本文中,我将介绍流API。 您可以从以下链接获取JSON-P参考实现:
- http://java.net/projects/jsonp/
JsonGenerator(javax.json.stream)
JsonGenerator使创建JSON非常容易。 凭借其流畅的API ,用于生成JSON的代码与生成的JSON非常相似。
package blog.jsonp;import java.util.*;
import javax.json.Json;
import javax.json.stream.*;public class GeneratorDemo {public static void main(String[] args) {Map<String, Object> properties = new HashMap<String, Object>(1);properties.put(JsonGenerator.PRETTY_PRINTING, true);JsonGeneratorFactory jgf = Json.createGeneratorFactory(properties);JsonGenerator jg = jgf.createGenerator(System.out);jg.writeStartObject() // {.write("name", "Jane Doe") // "name":"Jane Doe",.writeStartObject("address") // "address":{.write("type", 1) // "type":1,.write("street", "1 A Street") // "street":"1 A Street",.writeNull("city") // "city":null,.write("verified", false) // "verified":false.writeEnd() // },.writeStartArray("phone-numbers") // "phone-numbers":[.writeStartObject() // {.write("number", "555-1111") // "number":"555-1111",.write("extension", "123") // "extension":"123".writeEnd() // },.writeStartObject() // {.write("number", "555-2222") // "number":"555-2222",.writeNull("extension") // "extension":null.writeEnd() // }.writeEnd() // ].writeEnd() // }.close();}}
输出量
以下是运行GeneratorDemo的输出。
{"name":"Jane Doe","address":{"type":1,"street":"1 A Street","city":null,"verified":false},"phone-numbers":[{"number":"555-1111","extension":"123"},{"number":"555-2222","extension":null}]
}
JsonParser(javax.json.stream)
使用JsonParser,我们将解析上一示例的输出以获取地址信息。 JSON解析器提供与JSON结构相对应的事件的深度优先遍历。 根据事件的类型,可以从JsonParser获得不同的数据。
package blog.jsonp;import java.io.FileInputStream;
import javax.json.Json;
import javax.json.stream.JsonParser;
import javax.json.stream.JsonParser.Event;public class ParserDemo {public static void main(String[] args) throws Exception {try (FileInputStream json = new FileInputStream("src/blog/jsonp/input.json")) {JsonParser jr = Json.createParser(json);Event event = null;// Advance to "address" keywhile(jr.hasNext()) {event = jr.next();if(event == Event.KEY_NAME && "address".equals(jr.getString())) {event = jr.next();break;}}// Output contents of "address" objectwhile(event != Event.END_OBJECT) {switch(event) {case KEY_NAME: {System.out.print(jr.getString());System.out.print(" = ");break;}case VALUE_FALSE: {System.out.println(false);break;}case VALUE_NULL: {System.out.println("null");break;}case VALUE_NUMBER: {if(jr.isIntegralNumber()) {System.out.println(jr.getInt());} else {System.out.println(jr.getBigDecimal());}break;}case VALUE_STRING: {System.out.println(jr.getString());break;}case VALUE_TRUE: {System.out.println(true);break;}default: {}}event = jr.next();}}}}
输出量
以下是运行ParserDemo的输出。
type = 1
street = 1 A Street
city = null
verified = false
MOXy和用于JSON处理的Java API(JSR-353)
将JSON映射到域对象仍然是与JSON交互的最简单方法。 现在,JSR-353即将完成,我们将其集成到MOXy的JSON绑定中。 您可以使用以下链接跟踪我们的进度:
- 错误405161 – MOXy支持Java API进行JSON处理(JSR-353)
翻译自: https://www.javacodegeeks.com/2013/04/java-api-for-json-processing-jsr-353-stream-apis.html
jsr250-api
jsr250-api_JSON处理的Java API(JSR-353)–流API相关推荐
- Java SE 9:Stream API的改进
发表简要目录: (Post Brief Table of Content:) Introduction介绍 Java SE 8: Stream API BasicsJava SE 8:Stream A ...
- java 怎么把list流化_Java 中的数据流和函数式编程
原标题:Java 中的数据流和函数式编程 学习如何使用 Java 8 中的流 API 和函数式编程结构.-- Marty Kalin(作者) 当 Java SE 8(又名核心 Java 8)在 201 ...
- jsr 269 api_研究Java 9 Money and Currency API(JSR 354)
jsr 269 api JSR 354定义了一个用于处理货币和货币的新Java API,计划将其包含在Java 9中.在本文中,我们将研究参考实现的当前状态: JavaMoney . 就像我关于Jav ...
- 研究Java 9 Money and Currency API(JSR 354)
JSR 354定义了一个用于处理货币和货币的新Java API,计划将其包含在Java 9中.在本文中,我们将研究参考实现的当前状态: JavaMoney . 就像我关于Java 8日期/时间API的 ...
- JSON处理的Java API(JSR-353)–流API
Java很快将具有一组标准的API,作为Java EE 7的一部分处理JSON.此标准定义为JSR 353 – JSON处理的Java API (JSON-P),目前正在最终批准投票中. JSON-P ...
- 更深入地了解Java 8 Date and Time API
在这篇文章中,我们将更深入地了解通过Java 8获得的新的Date / Time API( JSR 310 ). 请注意,本文主要由显示新API功能的代码示例驱动. 我认为这些示例是不言自明的,因此我 ...
- 从Java 11中删除的API
在看到一些Java 10中删除了API之后, Java 11 ( JSR 384 )看起来将删除更多API. 在最近的OpenJDK java-se-spec-experts邮件列表帖子" ...
- 深入了解Java 8日期和时间API
在这篇文章中,我们将更深入地了解通过Java 8获得的新的Date / Time API( JSR 310 ). 请注意,本文主要由显示新API功能的代码示例驱动. 我认为这些示例是不言自明的,因此我 ...
- java money_Java Money与Currency API浅谈
一.概述 JSR 354 - "金钱和货币"解决了Java中货币和货币金额的标准化问题. 它的目标是为Java生态系统添加一个灵活的可扩展的API,并使货币量更简单,更安全. JS ...
最新文章
- 一站式开源测试平台:MeterSphere
- 服务器告警其一:硬盘raid问题
- 唐山师范学院计算机考试,[河北]唐山师范学院2017年3月计算机一级考试报名时间...
- Oozie 3.3.1安装
- java20 创建服务器:ServerSocket
- 建立任务程序直接执行网页(.net)
- java通讯录工程_JAVA通讯录管理小项目
- Q91:真实地模拟透明材质(Realistic Transparency)(3)——A Glass of Water
- 勒索病毒最新变种for linux,Satan勒索病毒新变种卷土重来 安全狗提醒您注意
- WARNING: Too many active WebGL contexts. Oldest context will be lost
- 利用爬虫数据做的研究_利用研究周增强数据科学能力
- python三个单引号成对用于什么_python中三个单引号是什么意思
- MFC release 发送到桌面快捷方式图标问题
- Flink流批一体化处理框架
- URAL 1348. Goat in the Garden 2[求点到线段的距离]
- Mysql数据库技术——MEB备份技术
- Hotspot细节实现安全区域、记忆集卡表
- 前后端分离微服务管理系统项目实战SaaS-HRM项目(二)——数据库设计与前端框架
- memory内存占用过高 解决方法
- MZB01慢直播-如何循环直播录好的视频文件
热门文章
- IntelliJ IDEA 最常用配置详细图解,新手入门必看
- jQuery 基础教程 (四)之jQuery中的DOM操作
- Oracle入门(五)之基本命令操作
- 5分钟带你理解一致性Hash算法
- 为什么要有周考?周考是用来干什么的?
- 《走遍中国》珍藏版(十二)
- React中的各个目录文件功能
- 全局配置_配置全局异常处理,结果没有想到,spring boot实践(3)
- 雨滴桌面时间插件_Win10美化向——如何搭配你的桌面
- 使用maven聚合安装多个maven工程到本地仓库报错的解决方法:child module pom.xml does not exist