勒流网站制作,做淘宝要网站?,哪些网站可以做店淘客,wordpress手机验证jsr250-apiJava很快将具有一组标准的API#xff0c;作为Java EE 7的一部分处理JSON。该标准定义为JSR 353 – JSON处理的Java API #xff08;JSON-P#xff09;#xff0c;目前正在最终批准投票中。 JSON-P提供面向对象和基于流的方法#xff0c;在本文中#xff0c;我将… 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/ JsonGeneratorjavax.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) {MapString, Object properties new HashMapString, 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}]
}JsonParserjavax.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 falseMOXy和用于JSON处理的Java APIJSR-353 将JSON映射到域对象仍然是与JSON交互的最简单方法。 现在JSR-353即将完成我们将其集成到MOXy的JSON绑定中。 您可以使用以下链接跟踪我们的进度 错误405161 – MOXy支持Java API进行JSON处理JSR-353 参考 用于JSON处理的Java APIJSR-353– Java XML和JSON绑定博客中来自我们JCG合作伙伴 Blaise Doughan的流API 。 翻译自: https://www.javacodegeeks.com/2013/04/java-api-for-json-processing-jsr-353-stream-apis.htmljsr250-api