| 程序包 | 说明 |
|---|---|
| org.dromara.hutool.json |
JSON(JavaScript Object Notation JavaScript对象表示法)封装,包含以下组件:
JSONObject:使用键值对表示的数据类型,使用"{}"包围
JSONArray:使用列表表示的数据类型,使用"[]"包围
JSON封装主要包括JSON表示和JSON转换:
<--JSONConverter-- <---JSONParser----
Java对象 <=================> JSON对象 <=================> JSON字符串
------mapper-----> ---JSONWriter---->
|
| org.dromara.hutool.json.convert |
JSON中对象、值类型转换封装
|
| org.dromara.hutool.json.engine |
JSON SPI 实现
通过实现 JSONEngine 以使用不同的JSON库完成:
JSON序列化,即Java Bean(POJO)对象转为JSON字符串
JSON反序列化,即JSON字符串转为Java Bean(POJO)对象
|
| org.dromara.hutool.json.mapper |
Bean和JSON之间的映射封装,包括:
JSONObjectMapper: 转换对象为JSONObject
JSONArrayMapper: 转换对象为JSONArray
JSONValueMapper: 转换对象为JSON值
|
| org.dromara.hutool.json.xml |
JSON与XML相互转换封装,基于json.org官方库改造
|
| 限定符和类型 | 方法和说明 |
|---|---|
JSONException |
JSONTokener.syntaxError(String message)
Make a JSONException to signal a syntax error.
|
| 限定符和类型 | 方法和说明 |
|---|---|
JSONObject |
JSONObject.append(String key,
Object value)
追加值.
|
JSONObject |
JSONObject.append(String key,
Object value,
Predicate<MutableEntry<String,Object>> predicate)
追加值.
|
void |
JSONTokener.back()
将标记回退到第一个字符,重新开始解析新的JSON
|
JSONObject |
JSONObject.increment(String key)
对值加一,如果值不存在,赋值1,如果为数字类型,做加一操作
|
String |
JSONArray.join(String separator)
JSONArray转为以
separator为分界符的字符串 |
boolean |
JSONTokener.more()
源字符串是否有更多的字符
|
char |
JSONTokener.next()
获得源字符串中的下一个字符
|
char[] |
JSONTokener.next(int n)
获得接下来的n个字符
|
char |
JSONTokener.nextClean()
获得下一个字符,跳过空白符
|
String |
JSONTokener.nextString()
读取一个字符串,包括:
使用引号包裹的字符串,自动反转义。
|
String |
JSONTokener.nextString(char quote)
返回当前位置到指定引号前的所有字符,反斜杠的转义符也会被处理。
|
char |
JSONTokener.nextTokenChar()
获取下一个token字符
|
String |
JSONTokener.nextUnwrapString(char c)
获得下一个字符串,此字符串不以引号包围,不会处理转义符,主要解析:
非严格的key(无引号包围的key)
boolean值的字符串表示
Number值的字符串表示
null的字符串表示
|
Object |
JSONParser.nextValue()
获得下一个值,值类型可以是Boolean, Double, Integer, JSONArray, JSONObject, Long, or String
|
Object |
JSONParser.nextValue(JSONParser.ObjectBuilder objectBuilder)
获得下一个值,值类型可以是Boolean, Double, Integer, JSONArray, JSONObject, Long, or String
|
JSONArray |
JSONArray.put(int index,
Object value)
加入或者替换JSONArray中指定Index的值,如果index大于JSONArray的长度,将在指定index设置值,之前的位置填充JSONNull.Null
|
Object |
JSONObject.put(String key,
Object value)
PUT 键值对到JSONObject中,在忽略null模式下,如果值为
null,将此键移除 |
JSONObject |
JSONObject.set(String key,
Object value)
设置键值对到JSONObject中,在忽略null模式下,如果值为
null,将此键移除 |
JSONObject |
JSONObject.set(String key,
Object value,
Predicate<MutableEntry<String,Object>> predicate)
一次性Put 键值对,如果key已经存在抛出异常,如果键值中有null值,忽略
|
JSONObject |
JSONObject.set(String key,
Object value,
Predicate<MutableEntry<String,Object>> predicate,
boolean checkDuplicate)
设置键值对到JSONObject中,在忽略null模式下,如果值为
null,将此键移除 |
JSONObject |
JSONObject.setOpt(String key,
Object value)
在键和值都为非空的情况下put到JSONObject中
|
JSONArray |
JSONObject.toJSONArray(Collection<String> names)
将指定KEY列表的值组成新的JSONArray
|
JSONObject |
JSONArray.toJSONObject(JSONArray names)
根据给定名列表,与其位置对应的值组成JSONObject
|
default String |
JSON.toJSONString(int indentFactor)
格式化输出JSON字符串
|
default String |
JSON.toStringPretty()
格式化打印JSON,缩进为4个空格
|
default Writer |
JSON.write(Writer writer)
将JSON内容写入Writer,无缩进
Warning: This method assumes that the data structure is acyclical. |
Writer |
JSONObject.write(Writer writer,
int indentFactor,
int indent,
Predicate<MutableEntry<Object,Object>> predicate)
将JSON内容写入Writer
支持过滤器,即选择哪些字段或值不写出 |
Writer |
JSONArray.write(Writer writer,
int indentFactor,
int indent,
Predicate<MutableEntry<Object,Object>> predicate) |
Writer |
JSON.write(Writer writer,
int indentFactor,
int indent,
Predicate<MutableEntry<Object,Object>> predicate)
将JSON内容写入Writer
Warning: This method assumes that the data structure is acyclical. |
| 构造器和说明 |
|---|
JSONArray(Object object)
从对象构造,忽略
null的值支持以下类型的参数: 1. |
JSONArray(Object object,
JSONConfig jsonConfig)
从对象构造
支持以下类型的参数: 1. |
JSONArray(Object object,
JSONConfig jsonConfig,
Predicate<Mutable<Object>> predicate)
从对象构造
支持以下类型的参数: 1. |
JSONTokener(InputStream inputStream)
从InputStream中构建,使用UTF-8编码
|
| 限定符和类型 | 方法和说明 |
|---|---|
Object |
JSONConverter.toJSON(CharSequence str)
|
Object |
JSONConverter.toJSON(Object obj)
实现Object对象转换为JSON对象,根据RFC8259规范,支持的对象:
String: 转换为相应的对象,"和'包围的字符串返回原字符串,""返回
null
Array、Iterable、Iterator:转换为JSONArray
Bean对象:转为JSONObject
Number、Boolean:返回原对象
null:返回null
|
| 限定符和类型 | 方法和说明 |
|---|---|
static JSONEngine |
JSONEngineFactory.createEngine(String engineName)
创建自定义引擎
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
JSONArrayMapper.mapTo(JSONArray jsonArray)
将给定对象转换为
JSONArray |
| 限定符和类型 | 方法和说明 |
|---|---|
String |
XMLTokener.nextCDATA()
Get the text in the CDATA block.
|
Object |
XMLTokener.nextContent()
Get the next XML outer token, trimming whitespace.
|
Object |
XMLTokener.nextEntity(char ampersand)
Return the next entity.
|
Object |
XMLTokener.nextMeta()
Returns the next XML meta token.
|
Object |
XMLTokener.nextToken()
Get the next XML Token.
|
void |
JSONXMLParser.parseJSONObject(String xmlStr,
JSONObject jo)
转换XML为JSONObject
转换过程中一些信息可能会丢失,JSON中无法区分节点和属性,相同的节点将被处理为JSONArray。
|
boolean |
XMLTokener.skipPast(String to)
Skip characters until past the requested string.
|
static JSONObject |
JSONXMLUtil.toJSONObject(String string)
转换XML为JSONObject
转换过程中一些信息可能会丢失,JSON中无法区分节点和属性,相同的节点将被处理为JSONArray。
|
static JSONObject |
JSONXMLUtil.toJSONObject(String xmlStr,
JSONObject jo,
ParseConfig parseConfig)
转换XML为JSONObject
转换过程中一些信息可能会丢失,JSON中无法区分节点和属性,相同的节点将被处理为JSONArray。
|
static JSONObject |
JSONXMLUtil.toJSONObject(String string,
ParseConfig parseConfig)
转换XML为JSONObject
转换过程中一些信息可能会丢失,JSON中无法区分节点和属性,相同的节点将被处理为JSONArray。
|
static String |
JSONXMLUtil.toXml(Object object)
转换JSONObject为XML
|
static String |
JSONXMLSerializer.toXml(Object object)
转换JSONObject为XML
Convert a JSONObject into a well-formed, element-normal XML string.
|
static String |
JSONXMLUtil.toXml(Object object,
String tagName)
转换JSONObject为XML
|
static String |
JSONXMLSerializer.toXml(Object object,
String tagName)
转换JSONObject为XML
|
static String |
JSONXMLUtil.toXml(Object object,
String tagName,
String... contentKeys)
转换JSONObject为XML
|
static String |
JSONXMLSerializer.toXml(Object object,
String tagName,
String... contentKeys)
转换JSONObject为XML
|
Copyright © 2024. All rights reserved.