mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
fix code
This commit is contained in:
parent
a8ca13d8d6
commit
245c76f4c7
@ -11,6 +11,7 @@ import cn.hutool.core.text.StrUtil;
|
|||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.CharUtil;
|
import cn.hutool.core.util.CharUtil;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
|
import cn.hutool.json.convert.JSONConverter;
|
||||||
import cn.hutool.json.serialize.JSONString;
|
import cn.hutool.json.serialize.JSONString;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cn.hutool.json;
|
package cn.hutool.json;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanPath;
|
import cn.hutool.core.bean.BeanPath;
|
||||||
|
import cn.hutool.json.convert.JSONConverter;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
@ -8,6 +8,7 @@ import cn.hutool.core.lang.mutable.MutableEntry;
|
|||||||
import cn.hutool.core.lang.mutable.MutableObj;
|
import cn.hutool.core.lang.mutable.MutableObj;
|
||||||
import cn.hutool.core.text.StrJoiner;
|
import cn.hutool.core.text.StrJoiner;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
|
import cn.hutool.json.convert.JSONConverter;
|
||||||
import cn.hutool.json.mapper.ArrayMapper;
|
import cn.hutool.json.mapper.ArrayMapper;
|
||||||
import cn.hutool.json.serialize.JSONWriter;
|
import cn.hutool.json.serialize.JSONWriter;
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package cn.hutool.json;
|
|||||||
import cn.hutool.core.convert.ConvertException;
|
import cn.hutool.core.convert.ConvertException;
|
||||||
import cn.hutool.core.lang.getter.OptNullBasicTypeFromObjectGetter;
|
import cn.hutool.core.lang.getter.OptNullBasicTypeFromObjectGetter;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
|
import cn.hutool.json.convert.JSONConverter;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -5,6 +5,7 @@ import cn.hutool.core.lang.mutable.MutableEntry;
|
|||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.map.MapWrapper;
|
import cn.hutool.core.map.MapWrapper;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
|
import cn.hutool.json.convert.JSONConverter;
|
||||||
import cn.hutool.json.mapper.ObjectMapper;
|
import cn.hutool.json.mapper.ObjectMapper;
|
||||||
import cn.hutool.json.serialize.JSONWriter;
|
import cn.hutool.json.serialize.JSONWriter;
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cn.hutool.json;
|
package cn.hutool.json;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.json.convert.JSONConverter;
|
||||||
import cn.hutool.json.serialize.JSONDeserializer;
|
import cn.hutool.json.serialize.JSONDeserializer;
|
||||||
import cn.hutool.json.serialize.JSONString;
|
import cn.hutool.json.serialize.JSONString;
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package cn.hutool.json;
|
package cn.hutool.json.convert;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.codec.Base64;
|
|
||||||
import cn.hutool.core.convert.ConvertException;
|
import cn.hutool.core.convert.ConvertException;
|
||||||
import cn.hutool.core.convert.Converter;
|
import cn.hutool.core.convert.Converter;
|
||||||
import cn.hutool.core.convert.ConverterRegistry;
|
import cn.hutool.core.convert.ConverterRegistry;
|
||||||
@ -12,6 +11,12 @@ import cn.hutool.core.reflect.ConstructorUtil;
|
|||||||
import cn.hutool.core.reflect.TypeUtil;
|
import cn.hutool.core.reflect.TypeUtil;
|
||||||
import cn.hutool.core.text.StrUtil;
|
import cn.hutool.core.text.StrUtil;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
|
import cn.hutool.json.InternalJSONUtil;
|
||||||
|
import cn.hutool.json.JSON;
|
||||||
|
import cn.hutool.json.JSONArray;
|
||||||
|
import cn.hutool.json.JSONConfig;
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
import cn.hutool.json.serialize.GlobalSerializeMapping;
|
import cn.hutool.json.serialize.GlobalSerializeMapping;
|
||||||
import cn.hutool.json.serialize.JSONDeserializer;
|
import cn.hutool.json.serialize.JSONDeserializer;
|
||||||
|
|
||||||
@ -79,7 +84,7 @@ public class JSONConverter implements Converter {
|
|||||||
* @throws ConvertException 转换失败
|
* @throws ConvertException 转换失败
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
protected static <T> T jsonConvert(final Type targetType, final Object value, final JSONConfig config) throws ConvertException {
|
public static <T> T jsonConvert(final Type targetType, final Object value, final JSONConfig config) throws ConvertException {
|
||||||
if (null == value) {
|
if (null == value) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -98,10 +103,6 @@ public class JSONConverter implements Converter {
|
|||||||
}
|
}
|
||||||
return target.deserialize((JSON) value);
|
return target.deserialize((JSON) value);
|
||||||
}
|
}
|
||||||
} else if (targetClass == byte[].class && value instanceof CharSequence) {
|
|
||||||
// bytes二进制反序列化,默认按照Base64对待
|
|
||||||
// issue#I59LW4
|
|
||||||
return (T) Base64.decode((CharSequence) value);
|
|
||||||
} else if (targetClass.isAssignableFrom(Date.class) || targetClass.isAssignableFrom(TemporalAccessor.class)) {
|
} else if (targetClass.isAssignableFrom(Date.class) || targetClass.isAssignableFrom(TemporalAccessor.class)) {
|
||||||
// 用户指定了日期格式,获取日期属性时使用对应格式
|
// 用户指定了日期格式,获取日期属性时使用对应格式
|
||||||
final String valueStr = convertWithCheck(String.class, value, null, true);
|
final String valueStr = convertWithCheck(String.class, value, null, true);
|
||||||
@ -137,7 +138,7 @@ public class JSONConverter implements Converter {
|
|||||||
* @since 5.7.10
|
* @since 5.7.10
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
protected static <T> T jsonToBean(final Type targetType, final Object value, final boolean ignoreError) throws ConvertException {
|
public static <T> T jsonToBean(final Type targetType, final Object value, final boolean ignoreError) throws ConvertException {
|
||||||
if (null == value) {
|
if (null == value) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package cn.hutool.json.convert;
|
||||||
|
|
||||||
|
import cn.hutool.core.convert.AbstractConverter;
|
||||||
|
import cn.hutool.core.convert.ConvertException;
|
||||||
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
|
import cn.hutool.json.JSON;
|
||||||
|
import cn.hutool.json.serialize.JSONDeserializer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实现了{@link JSONDeserializer}接口的Bean对象转换器,用于将指定JSON转换为JSONDeserializer子对象。
|
||||||
|
*
|
||||||
|
* @author looly
|
||||||
|
* @since 6.0.0
|
||||||
|
*/
|
||||||
|
public class JSONDeserializerConverter extends AbstractConverter {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Object convertInternal(Class<?> targetClass, Object value) {
|
||||||
|
// 自定义反序列化
|
||||||
|
if (value instanceof JSON) {
|
||||||
|
final JSONDeserializer<?> target = (JSONDeserializer<?>) ConstructorUtil.newInstanceIfPossible(targetClass);
|
||||||
|
if (null == target) {
|
||||||
|
throw new ConvertException("Can not instance target: [{}]", targetClass);
|
||||||
|
}
|
||||||
|
return target.deserialize((JSON) value);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new ConvertException("JSONDeserializer bean must be convert from JSON!");
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user