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)
参考: 用于JSON处理的Java API(JSR-353)– Java XML和JSON绑定博客中来自我们JCG合作伙伴 Blaise Doughan的流API 。

翻译自: 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相关推荐

  1. Java SE 9:Stream API的改进

    发表简要目录: (Post Brief Table of Content:) Introduction介绍 Java SE 8: Stream API BasicsJava SE 8:Stream A ...

  2. java 怎么把list流化_Java 中的数据流和函数式编程

    原标题:Java 中的数据流和函数式编程 学习如何使用 Java 8 中的流 API 和函数式编程结构.-- Marty Kalin(作者) 当 Java SE 8(又名核心 Java 8)在 201 ...

  3. jsr 269 api_研究Java 9 Money and Currency API(JSR 354)

    jsr 269 api JSR 354定义了一个用于处理货币和货币的新Java API,计划将其包含在Java 9中.在本文中,我们将研究参考实现的当前状态: JavaMoney . 就像我关于Jav ...

  4. 研究Java 9 Money and Currency API(JSR 354)

    JSR 354定义了一个用于处理货币和货币的新Java API,计划将其包含在Java 9中.在本文中,我们将研究参考实现的当前状态: JavaMoney . 就像我关于Java 8日期/时间API的 ...

  5. JSON处理的Java API(JSR-353)–流API

    Java很快将具有一组标准的API,作为Java EE 7的一部分处理JSON.此标准定义为JSR 353 – JSON处理的Java API (JSON-P),目前正在最终批准投票中. JSON-P ...

  6. 更深入地了解Java 8 Date and Time API

    在这篇文章中,我们将更深入地了解通过Java 8获得的新的Date / Time API( JSR 310 ). 请注意,本文主要由显示新API功能的代码示例驱动. 我认为这些示例是不言自明的,因此我 ...

  7. 从Java 11中删除的API

    在看到一些Java 10中删除了API之后, Java 11 ( JSR 384 )看起来将删除更多API. 在最近的OpenJDK java-se-spec-experts邮件列表帖子" ...

  8. 深入了解Java 8日期和时间API

    在这篇文章中,我们将更深入地了解通过Java 8获得的新的Date / Time API( JSR 310 ). 请注意,本文主要由显示新API功能的代码示例驱动. 我认为这些示例是不言自明的,因此我 ...

  9. java money_Java Money与Currency API浅谈

    一.概述 JSR 354 - "金钱和货币"解决了Java中货币和货币金额的标准化问题. 它的目标是为Java生态系统添加一个灵活的可扩展的API,并使货币量更简单,更安全. JS ...

最新文章

  1. 一站式开源测试平台:MeterSphere
  2. 服务器告警其一:硬盘raid问题
  3. 唐山师范学院计算机考试,[河北]唐山师范学院2017年3月计算机一级考试报名时间...
  4. Oozie 3.3.1安装
  5. java20 创建服务器:ServerSocket
  6. 建立任务程序直接执行网页(.net)
  7. java通讯录工程_JAVA通讯录管理小项目
  8. Q91:真实地模拟透明材质(Realistic Transparency)(3)——A Glass of Water
  9. 勒索病毒最新变种for linux,Satan勒索病毒新变种卷土重来 安全狗提醒您注意
  10. WARNING: Too many active WebGL contexts. Oldest context will be lost
  11. 利用爬虫数据做的研究_利用研究周增强数据科学能力
  12. python三个单引号成对用于什么_python中三个单引号是什么意思
  13. MFC release 发送到桌面快捷方式图标问题
  14. Flink流批一体化处理框架
  15. URAL 1348. Goat in the Garden 2[求点到线段的距离]
  16. Mysql数据库技术——MEB备份技术
  17. Hotspot细节实现安全区域、记忆集卡表
  18. 前后端分离微服务管理系统项目实战SaaS-HRM项目(二)——数据库设计与前端框架
  19. memory内存占用过高 解决方法
  20. MZB01慢直播-如何循环直播录好的视频文件

热门文章

  1. IntelliJ IDEA 最常用配置详细图解,新手入门必看
  2. jQuery 基础教程 (四)之jQuery中的DOM操作
  3. Oracle入门(五)之基本命令操作
  4. 5分钟带你理解一致性Hash算法
  5. 为什么要有周考?周考是用来干什么的?
  6. 《走遍中国》珍藏版(十二)
  7. React中的各个目录文件功能
  8. 全局配置_配置全局异常处理,结果没有想到,spring boot实践(3)
  9. 雨滴桌面时间插件_Win10美化向——如何搭配你的桌面
  10. 使用maven聚合安装多个maven工程到本地仓库报错的解决方法:child module pom.xml does not exist