Package | Description |
---|---|
org.dromara.hutool.json |
JSON(JavaScript Object Notation JavaScript对象表示法)封装
规范见:https://www.rfc-editor.org/rfc/rfc8259 包含以下组件: JSONObject: 使用键值对表示的数据类型,使用"{}"包围 JSONArray: 使用列表表示的数据类型,使用"[]"包围 JSONPrimitive:表示boolean、String、Number等原始类型 JSON封装主要包括JSON表示和JSON转换:
<-----JSONMapper----- <---JSONParser----
Java对象 <====================> JSON对象 <=================> JSON字符串
-----JSONMapper-----> ---JSONWriter---->
当然,为了高效转换,如果没有自定义需求,Java对象可以不通过JSON对象与JSON字符串转换:
JSONTokener:JSON字符串底层解析器,通过Stream方式读取JSON字符串并对不同字段自定义处理。 |
org.dromara.hutool.json.engine |
JSON SPI 实现
通过实现 JSONEngine 以使用不同的JSON库完成:
JSON序列化,即Java Bean(POJO)对象转为JSON字符串
JSON反序列化,即JSON字符串转为Java Bean(POJO)对象
|
org.dromara.hutool.json.reader |
JSON读取和解析,主要解析字符串、流等JSON字符串为
JSON 。 |
org.dromara.hutool.json.xml |
JSON与XML相互转换封装,基于json.org官方库改造
|
Modifier and Type | Method and Description |
---|---|
JSONObject |
JSONObject.append(String key,
Object value)
追加值.
|
JSONObject |
JSONObject.increment(String key)
对值加一,如果值不存在,赋值1,如果为数字类型,做加一操作
|
JSON |
JSONObject.put(String key,
JSON value)
设置键值对到JSONObject中,在忽略null模式下,如果值为
null ,将此键移除 |
JSONObject |
JSONObject.putValue(String key,
Boolean value)
设置键值对到JSONObject中,在忽略null模式下,如果值为
null ,将此键移除 |
JSONObject |
JSONObject.putValue(String key,
Character value)
设置键值对到JSONObject中,在忽略null模式下,如果值为
null ,将此键移除 |
JSONObject |
JSONObject.putValue(String key,
Number value)
设置键值对到JSONObject中,在忽略null模式下,如果值为
null ,将此键移除 |
JSONObject |
JSONObject.putValue(String key,
Object value)
设置键值对到JSONObject中,在忽略null模式下,如果值为
null ,将此键移除 |
JSONObject |
JSONObject.putValue(String key,
String value)
设置键值对到JSONObject中,在忽略null模式下,如果值为
null ,将此键移除 |
JSONObject |
JSONArray.toJSONObject(JSONArray names)
根据给定名列表,与其位置对应的值组成JSONObject
|
default String |
JSON.toJSONString(int indentFactor)
格式化输出JSON字符串
|
default String |
JSON.toJSONString(int indentFactor,
Predicate<MutableEntry<Object,Object>> predicate)
格式化输出JSON字符串
|
default String |
JSON.toStringPretty()
格式化打印JSON,缩进为4个空格
|
void |
JSONPrimitive.write(JSONWriter writer) |
void |
JSONObject.write(JSONWriter writer) |
void |
JSONArray.write(JSONWriter writer) |
void |
JSON.write(JSONWriter writer)
将JSON内容写入Writer
Warning: This method assumes that the data structure is acyclical. |
Modifier and Type | Method and Description |
---|---|
static JSONEngine |
JSONEngineFactory.createEngine(String engineName)
创建自定义引擎
|
Modifier and Type | Method and Description |
---|---|
JSONException |
JSONTokener.syntaxError(String message)
Make a JSONException to signal a syntax error.
|
Modifier and Type | Method and Description |
---|---|
void |
JSONTokener.back()
将标记回退到第一个字符,重新开始解析新的JSON
|
boolean |
JSONTokener.more()
源字符串是否有更多的字符
|
char |
JSONTokener.next()
获得源字符串中的下一个字符
|
char[] |
JSONTokener.next(int n)
获得接下来的n个字符
|
char |
JSONTokener.nextClean()
获得下一个字符,跳过空白符
|
char |
JSONTokener.nextColon()
获取下一个冒号,非冒号则抛出异常
|
String |
JSONTokener.nextKey(char c)
读取下一个JSON中的key,支持不带引号的key
|
String |
JSONTokener.nextString()
读取一个字符串,包括:
使用引号包裹的字符串,自动反转义。
|
char |
JSONTokener.nextTokenChar()
获取下一个token字符
|
String |
JSONTokener.nextUnwrapString(char c)
获得下一个字符串,此字符串不以引号包围,不会处理转义符,主要解析:
非严格的key(无引号包围的key)
boolean值的字符串表示
Number值的字符串表示
null的字符串表示
|
String |
JSONTokener.nextWrapString(char quote)
返回当前位置到指定引号前的所有字符,反斜杠的转义符也会被处理。
|
Constructor and Description |
---|
JSONTokener(InputStream inputStream,
boolean ignoreZeroWithChar)
从InputStream中构建,使用UTF-8编码
|
Modifier and Type | Method and Description |
---|---|
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(JSON json)
转换JSONObject为XML
|
static String |
JSONXMLSerializer.toXml(JSON json)
转换JSONObject为XML
Convert a JSONObject into a well-formed, element-normal XML string.
|
static String |
JSONXMLUtil.toXml(JSON json,
String tagName)
转换JSONObject为XML
|
static String |
JSONXMLSerializer.toXml(JSON json,
String tagName)
转换JSONObject为XML
|
static String |
JSONXMLUtil.toXml(JSON json,
String tagName,
String... contentKeys)
转换JSONObject为XML
|
static String |
JSONXMLSerializer.toXml(JSON json,
String tagName,
String... contentKeys)
转换JSONObject为XML
|
Copyright © 2025. All rights reserved.