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数据并在内存中创建对象模型。 |
|
通过添加应用程序代码中的元素,在内存中创建对象模型或数组模型。 |
|
将对象模型从内存写入流。 |
|
表示JSON数据中的元素(例如对象,数组或值)。 |
|
表示JSON数据中的对象或数组。此接口是子类型 |
|
表示JSON数据中的对象或数组。这两个接口是子类型 |
|
表示JSON数据中元素的数据类型。这两个接口是子类型 |
|
表示在JSON处理期间发生问题。 |
javax.json.stream中的主类和接口
类或接口 | 描述 |
---|---|
|
表示可以从流或对象模型中读取JSON数据的基于事件的解析器。 |
|
一次将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的主要内容,如果未能解决你的问题,请参考以下文章
Washing&Processing Data(JSON) with Python
Introduction of JSON Processing and binding in JavaEE
markdown Golang json processing.md中的marshal和unmarshal问题
Analysis JSON / XML Processing Model Extend to JAVA Design Model