|
@@ -1,157 +1,157 @@
|
|
|
-/*
|
|
|
- * *********************************************************************************************************************
|
|
|
- *
|
|
|
- * !!
|
|
|
- * .F88X
|
|
|
- * X8888Y
|
|
|
- * .}888888N;
|
|
|
- * i888888N; .:! .I$WI:
|
|
|
- * R888888I .'N88~ i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
|
|
|
- * .R888888I .;N8888~ .X8' "8I.!,/8" !%NY8`"8I8~~8>,88I
|
|
|
- * +888888N; .8888888Y "&&8Y.}8,
|
|
|
- * ./888888N; .R888888Y .'}~ .>}'.`+> i}! "i' +/' .'i~ !11,.:">, .~]! .i}i
|
|
|
- * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]"888888888> Y8$ W8E X8E W8888'188Il}Y88$*
|
|
|
- * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I
|
|
|
- * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
|
|
|
- * 8888888I .,N888888~ ~88i"8W,!N8*.I88.}888%F,i$88"F88" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
|
|
|
- * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I
|
|
|
- * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/
|
|
|
- * .:R888888I
|
|
|
- * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司
|
|
|
- * ~8888'
|
|
|
- * .!88~ All rights reserved.
|
|
|
- *
|
|
|
- * *********************************************************************************************************************
|
|
|
- */
|
|
|
-
|
|
|
-package com.persagy.service.utils
|
|
|
-
|
|
|
-import com.alibaba.fastjson.JSON
|
|
|
-import com.alibaba.fastjson.PropertyNamingStrategy
|
|
|
-import com.alibaba.fastjson.serializer.SerializeConfig
|
|
|
-import com.alibaba.fastjson.serializer.SerializerFeature
|
|
|
-import java.io.InputStream
|
|
|
-import java.lang.reflect.Type
|
|
|
-
|
|
|
-object SJsonUtil {
|
|
|
- /** 序列化配置 */
|
|
|
- val serializeConfig = SerializeConfig()
|
|
|
-
|
|
|
- /**
|
|
|
- * 转换对象到 json 格式字符串
|
|
|
- *
|
|
|
- * @param obj 被转换对象
|
|
|
- * @param namingStrategy 命名规则
|
|
|
- * @return json 格式字符串
|
|
|
- */
|
|
|
- fun toJson(obj: Any, namingStrategy: PropertyNamingStrategy? = null): String {
|
|
|
- return if (null == namingStrategy) {
|
|
|
- JSON.toJSONString(obj, serializeConfig, SerializerFeature.DisableCircularReferenceDetect)
|
|
|
- } else {
|
|
|
- val config = SerializeConfig()
|
|
|
- config.propertyNamingStrategy = namingStrategy
|
|
|
- JSON.toJSONString(obj, config, SerializerFeature.DisableCircularReferenceDetect)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 转换对象到 json 格式字符串,包含空字符串
|
|
|
- *
|
|
|
- * @param obj 被转换对象
|
|
|
- * @param namingStrategy 首字母是否大写
|
|
|
- * @return json 格式字符串
|
|
|
- */
|
|
|
- fun toJsonAll(obj: Any, namingStrategy: PropertyNamingStrategy? = null): String {
|
|
|
- return if (null == namingStrategy) {
|
|
|
- JSON.toJSONString(obj,
|
|
|
- serializeConfig,
|
|
|
- SerializerFeature.WriteMapNullValue,
|
|
|
- SerializerFeature.WriteNullListAsEmpty,
|
|
|
- SerializerFeature.DisableCircularReferenceDetect)
|
|
|
- } else {
|
|
|
- val config = SerializeConfig()
|
|
|
- config.propertyNamingStrategy = namingStrategy
|
|
|
- JSON.toJSONString(obj,
|
|
|
- config,
|
|
|
- SerializerFeature.WriteMapNullValue,
|
|
|
- SerializerFeature.WriteNullListAsEmpty,
|
|
|
- SerializerFeature.DisableCircularReferenceDetect)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 将 Json 数据解析成相应的映射对象
|
|
|
- *
|
|
|
- * @param jsonData 要解析的 JSON 数据
|
|
|
- * @param type Java 类型
|
|
|
- * @return 解析结果
|
|
|
- */
|
|
|
- @Throws(Exception::class)
|
|
|
- fun <T> fromJson(jsonData: String, type: Class<T>): T? {
|
|
|
- return JSON.parseObject(jsonData, type)
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 将 Json 数据解析成相应的映射对象
|
|
|
- *
|
|
|
- * @param jsonData 要解析的 JSON 数据
|
|
|
- * @param type Java 类型
|
|
|
- * @return 解析结果
|
|
|
- */
|
|
|
- @Throws(Exception::class)
|
|
|
- fun fromJson(jsonData: String, type: Type): Any? {
|
|
|
- return JSON.parseObject(jsonData, type)
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 将 Json 数据解析成相应的映射对象
|
|
|
- *
|
|
|
- * @param input 要解析的 JSON 数据输入流
|
|
|
- * @param type Java 类型
|
|
|
- * @param namingStrategy 命名规则
|
|
|
- * @return 解析结果
|
|
|
- */
|
|
|
- @Throws(Exception::class)
|
|
|
- fun <T> fromJson(input: InputStream, type: Class<T>): T? {
|
|
|
- val count = input.available()
|
|
|
- val buf = ByteArray(count)
|
|
|
- var readCount = 0
|
|
|
- while (readCount < count) {
|
|
|
- readCount += input.read(buf, readCount, count - readCount)
|
|
|
- }
|
|
|
-
|
|
|
- return fromJson(String(buf), type)
|
|
|
- }
|
|
|
-
|
|
|
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
- /**
|
|
|
- * 将 Json 数据解析成相应的映射对象
|
|
|
- *
|
|
|
- * @param jsonData 要解析的 JSON 数据
|
|
|
- * @param namingStrategy 命名规则
|
|
|
- * @return 解析结果
|
|
|
- */
|
|
|
- @Throws(Exception::class)
|
|
|
- inline fun <reified T> fromJson(jsonData: String, namingStrategy: PropertyNamingStrategy? = null): T {
|
|
|
- return JSON.parseObject(jsonData, T::class.java)
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 将 Json 数据解析成相应的映射对象
|
|
|
- *
|
|
|
- * @param input 要解析的 JSON 数据输入流
|
|
|
- * @param namingStrategy 命名规则
|
|
|
- * @return 解析结果
|
|
|
- */
|
|
|
- @Throws(Exception::class)
|
|
|
- inline fun <reified T> fromJson(input: InputStream, namingStrategy: PropertyNamingStrategy? = null): T {
|
|
|
- val count = input.available()
|
|
|
- val buf = ByteArray(count)
|
|
|
- var readCount = 0
|
|
|
- while (readCount < count) {
|
|
|
- readCount += input.read(buf, readCount, count - readCount)
|
|
|
- }
|
|
|
-
|
|
|
- return fromJson(String(buf), namingStrategy)
|
|
|
- }
|
|
|
-}
|
|
|
+///*
|
|
|
+// * *********************************************************************************************************************
|
|
|
+// *
|
|
|
+// * !!
|
|
|
+// * .F88X
|
|
|
+// * X8888Y
|
|
|
+// * .}888888N;
|
|
|
+// * i888888N; .:! .I$WI:
|
|
|
+// * R888888I .'N88~ i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
|
|
|
+// * .R888888I .;N8888~ .X8' "8I.!,/8" !%NY8`"8I8~~8>,88I
|
|
|
+// * +888888N; .8888888Y "&&8Y.}8,
|
|
|
+// * ./888888N; .R888888Y .'}~ .>}'.`+> i}! "i' +/' .'i~ !11,.:">, .~]! .i}i
|
|
|
+// * ~888888%: .I888888l .]88~`1/iY88Ii+1'.R$8$8]"888888888> Y8$ W8E X8E W8888'188Il}Y88$*
|
|
|
+// * 18888888 E8888881 .]W%8$`R8X'&8%++N8i,8N%N8+l8%` .}8N:.R$RE%N88N%N$K$R 188,FE$8%~Y88I
|
|
|
+// * .E888888I .i8888888' .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
|
|
|
+// * 8888888I .,N888888~ ~88i"8W,!N8*.I88.}888%F,i$88"F88" 888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
|
|
|
+// * i888888N' I888Y ]88;/EX*IFKFK88X K8R .l8W 88Y ~88}'88E&%8W.X8N``]88!.$8K .:W8I
|
|
|
+// * .i888888N; I8Y .&8$ .X88! i881.:%888>I88 ;88] +88+.';;;;:.Y88X 18N.,88l .+88/
|
|
|
+// * .:R888888I
|
|
|
+// * .&888888I Copyright (c) 2016-2020. 博锐尚格科技股份有限公司
|
|
|
+// * ~8888'
|
|
|
+// * .!88~ All rights reserved.
|
|
|
+// *
|
|
|
+// * *********************************************************************************************************************
|
|
|
+// */
|
|
|
+//
|
|
|
+//package com.persagy.service.utils
|
|
|
+//
|
|
|
+//import com.alibaba.fastjson.JSON
|
|
|
+//import com.alibaba.fastjson.PropertyNamingStrategy
|
|
|
+//import com.alibaba.fastjson.serializer.SerializeConfig
|
|
|
+//import com.alibaba.fastjson.serializer.SerializerFeature
|
|
|
+//import java.io.InputStream
|
|
|
+//import java.lang.reflect.Type
|
|
|
+//
|
|
|
+//object SJsonUtil {
|
|
|
+// /** 序列化配置 */
|
|
|
+// val serializeConfig = SerializeConfig()
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 转换对象到 json 格式字符串
|
|
|
+// *
|
|
|
+// * @param obj 被转换对象
|
|
|
+// * @param namingStrategy 命名规则
|
|
|
+// * @return json 格式字符串
|
|
|
+// */
|
|
|
+// fun toJson(obj: Any, namingStrategy: PropertyNamingStrategy? = null): String {
|
|
|
+// return if (null == namingStrategy) {
|
|
|
+// JSON.toJSONString(obj, serializeConfig, SerializerFeature.DisableCircularReferenceDetect)
|
|
|
+// } else {
|
|
|
+// val config = SerializeConfig()
|
|
|
+// config.propertyNamingStrategy = namingStrategy
|
|
|
+// JSON.toJSONString(obj, config, SerializerFeature.DisableCircularReferenceDetect)
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 转换对象到 json 格式字符串,包含空字符串
|
|
|
+// *
|
|
|
+// * @param obj 被转换对象
|
|
|
+// * @param namingStrategy 首字母是否大写
|
|
|
+// * @return json 格式字符串
|
|
|
+// */
|
|
|
+// fun toJsonAll(obj: Any, namingStrategy: PropertyNamingStrategy? = null): String {
|
|
|
+// return if (null == namingStrategy) {
|
|
|
+// JSON.toJSONString(obj,
|
|
|
+// serializeConfig,
|
|
|
+// SerializerFeature.WriteMapNullValue,
|
|
|
+// SerializerFeature.WriteNullListAsEmpty,
|
|
|
+// SerializerFeature.DisableCircularReferenceDetect)
|
|
|
+// } else {
|
|
|
+// val config = SerializeConfig()
|
|
|
+// config.propertyNamingStrategy = namingStrategy
|
|
|
+// JSON.toJSONString(obj,
|
|
|
+// config,
|
|
|
+// SerializerFeature.WriteMapNullValue,
|
|
|
+// SerializerFeature.WriteNullListAsEmpty,
|
|
|
+// SerializerFeature.DisableCircularReferenceDetect)
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 将 Json 数据解析成相应的映射对象
|
|
|
+// *
|
|
|
+// * @param jsonData 要解析的 JSON 数据
|
|
|
+// * @param type Java 类型
|
|
|
+// * @return 解析结果
|
|
|
+// */
|
|
|
+// @Throws(Exception::class)
|
|
|
+// fun <T> fromJson(jsonData: String, type: Class<T>): T? {
|
|
|
+// return JSON.parseObject(jsonData, type)
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 将 Json 数据解析成相应的映射对象
|
|
|
+// *
|
|
|
+// * @param jsonData 要解析的 JSON 数据
|
|
|
+// * @param type Java 类型
|
|
|
+// * @return 解析结果
|
|
|
+// */
|
|
|
+// @Throws(Exception::class)
|
|
|
+// fun fromJson(jsonData: String, type: Type): Any? {
|
|
|
+// return JSON.parseObject(jsonData, type)
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 将 Json 数据解析成相应的映射对象
|
|
|
+// *
|
|
|
+// * @param input 要解析的 JSON 数据输入流
|
|
|
+// * @param type Java 类型
|
|
|
+// * @param namingStrategy 命名规则
|
|
|
+// * @return 解析结果
|
|
|
+// */
|
|
|
+// @Throws(Exception::class)
|
|
|
+// fun <T> fromJson(input: InputStream, type: Class<T>): T? {
|
|
|
+// val count = input.available()
|
|
|
+// val buf = ByteArray(count)
|
|
|
+// var readCount = 0
|
|
|
+// while (readCount < count) {
|
|
|
+// readCount += input.read(buf, readCount, count - readCount)
|
|
|
+// }
|
|
|
+//
|
|
|
+// return fromJson(String(buf), type)
|
|
|
+// }
|
|
|
+//
|
|
|
+// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
+// /**
|
|
|
+// * 将 Json 数据解析成相应的映射对象
|
|
|
+// *
|
|
|
+// * @param jsonData 要解析的 JSON 数据
|
|
|
+// * @param namingStrategy 命名规则
|
|
|
+// * @return 解析结果
|
|
|
+// */
|
|
|
+// @Throws(Exception::class)
|
|
|
+// inline fun <reified T> fromJson(jsonData: String, namingStrategy: PropertyNamingStrategy? = null): T {
|
|
|
+// return JSON.parseObject(jsonData, T::class.java)
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 将 Json 数据解析成相应的映射对象
|
|
|
+// *
|
|
|
+// * @param input 要解析的 JSON 数据输入流
|
|
|
+// * @param namingStrategy 命名规则
|
|
|
+// * @return 解析结果
|
|
|
+// */
|
|
|
+// @Throws(Exception::class)
|
|
|
+// inline fun <reified T> fromJson(input: InputStream, namingStrategy: PropertyNamingStrategy? = null): T {
|
|
|
+// val count = input.available()
|
|
|
+// val buf = ByteArray(count)
|
|
|
+// var readCount = 0
|
|
|
+// while (readCount < count) {
|
|
|
+// readCount += input.read(buf, readCount, count - readCount)
|
|
|
+// }
|
|
|
+//
|
|
|
+// return fromJson(String(buf), namingStrategy)
|
|
|
+// }
|
|
|
+//}
|