JSON Processing

Posted bleachcurtain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON Processing相关的知识,希望对你有一定的参考价值。

Java EE包括对JSR 353的支持,JSR 353提供了一个API,用于使用生成和解析JSON数据中描述的对象模型或流模型来解析,转换和查询JSON数据JSON Processing的Java API包含以下包。

  • javax.json程序包包含对象模型的阅读器界面,编写器界面和模型构建器界面。该包还包含其他实用程序类和JSON元素的Java类型。表19-1列出了此包中的主要类和接口。

  • javax.json.stream包包含解析器接口和流模型的生成器接口。表19-2列出了此包中的主要类和接口。

javax.json中的主类和接口

类或接口描述

Json

包含用于创建JSON解析器,构建器和生成器实例的静态方法。此类还包含创建解析器,构建器和生成器工厂对象的方法。

JsonReader

从流中读取JSON数据并在内存中创建对象模型。

JsonObjectBuilder

JsonArrayBuilder

通过添加应用程序代码中的元素,在内存中创建对象模型或数组模型。

JsonWriter

将对象模型从内存写入流。

JsonValue

表示JSON数据中的元素(例如对象,数组或值)。

JsonStructure

表示JSON数据中的对象或数组。此接口是子类型JsonValue

JsonObject

JsonArray

表示JSON数据中的对象或数组。这两个接口是子类型JsonStructure

JsonString

JsonNumber

表示JSON数据中元素的数据类型。这两个接口是子类型JsonValue

JsonException

表示在JSON处理期间发生问题。

javax.json.stream中的主类和接口

类或接口描述

JsonParser

表示可以从流或对象模型中读取JSON数据的基于事件的解析器。

JsonGenerator

一次将JSON数据写入流中一个元素。

生成和解析JSON数据

为了生成和解析JSON数据,有两种编程模型,类似于用于XML文档的编程模型。

  • 对象模型创建一个表示内存中JSON数据的树。然后可以导航,分析或修改树。这种方法最灵活,允许进行需要访问树的完整内容的处理。但是,它通常比流模型慢,需要更多内存。对象模型通过一次导航整个树来生成JSON输出。

  • 流模型使用基于事件的解析器,一次读取一个元素的JSON数据。当对象或数组开始或结束,找到键或找到值时,解析器生成事件并停止处理。应用程序代码可以处理或丢弃每个元素,然后解析器继续执行下一个事件。这种方法适用于本地处理,其中元素的处理不需要来自其余数据的信息。流模型通过一次使用一个元素进行函数调用来生成给定流的JSON输出。

有许多JSON生成器和解析器可用于不同的编程语言和环境。Java EE平台中的JSON处理描述了Java API for JSON Processing(JSR 353)提供的功能。

 

参考链接:https://docs.oracle.com/javaee/7/tutorial/jsonp002.htm#BABDFHHD

     https://docs.oracle.com/javaee/7/tutorial/jsonp001.htm

 

以上是关于JSON Processing的主要内容,如果未能解决你的问题,请参考以下文章

JSON/XML processing model

Washing&Processing Data(JSON) with Python

Introduction of JSON Processing and binding in JavaEE

markdown Golang json processing.md中的marshal和unmarshal问题

json 个人的vscode的代码片段

Analysis JSON / XML Processing Model Extend to JAVA Design Model