mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fic null point bug
This commit is contained in:
@@ -71,22 +71,16 @@ public class JSONConverter implements Converter<JSON> {
|
||||
}
|
||||
|
||||
if(value instanceof JSON) {
|
||||
JSONDeserializer<?> deserializer = GlobalSerializeMapping.getDeserializer(targetType);
|
||||
final JSONDeserializer<?> deserializer = GlobalSerializeMapping.getDeserializer(targetType);
|
||||
if(null != deserializer) {
|
||||
return (T) deserializer.deserialize((JSON)value);
|
||||
}
|
||||
}
|
||||
|
||||
Object targetValue;
|
||||
try {
|
||||
targetValue = Convert.convert(targetType, value);
|
||||
} catch (ConvertException e) {
|
||||
if (ignoreError) {
|
||||
return null;
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
|
||||
final T targetValue = ignoreError ?
|
||||
Convert.convertQuietly(targetType, value):
|
||||
Convert.convert(targetType, value);
|
||||
|
||||
if (null == targetValue && false == ignoreError) {
|
||||
if (StrUtil.isBlankIfStr(value)) {
|
||||
// 对于传入空字符串的情况,如果转换的目标对象是非字符串或非原始类型,转换器会返回false。
|
||||
@@ -97,7 +91,7 @@ public class JSONConverter implements Converter<JSON> {
|
||||
throw new ConvertException("Can not convert {} to type {}", value, ObjectUtil.defaultIfNull(TypeUtil.getClass(targetType), targetType));
|
||||
}
|
||||
|
||||
return (T) targetValue;
|
||||
return targetValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
38
hutool-json/src/test/java/cn/hutool/json/IssueI1F8M2.java
Normal file
38
hutool-json/src/test/java/cn/hutool/json/IssueI1F8M2.java
Normal file
@@ -0,0 +1,38 @@
|
||||
package cn.hutool.json;
|
||||
|
||||
import lombok.Data;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* https://gitee.com/loolly/dashboard/issues?id=I1F8M2
|
||||
*/
|
||||
public class IssueI1F8M2 {
|
||||
@Test
|
||||
public void toBeanTest() {
|
||||
String jsonStr = "{\"eventType\":\"fee\",\"fwdAlertingTime\":\"2020-04-22 16:34:13\",\"fwdAnswerTime\":\"\"}";
|
||||
Param param = JSONUtil.toBean(jsonStr, Param.class);
|
||||
Assert.assertEquals("2020-04-22T16:34:13", param.getFwdAlertingTime().toString());
|
||||
Assert.assertNull(param.getFwdAnswerTime());
|
||||
}
|
||||
|
||||
// Param类的字段
|
||||
@Data
|
||||
static class Param {
|
||||
/**
|
||||
* fee表示话单事件
|
||||
*/
|
||||
private String eventType;
|
||||
/**
|
||||
* 转接呼叫后振铃时间
|
||||
*/
|
||||
private LocalDateTime fwdAlertingTime;
|
||||
/**
|
||||
* 转接呼叫后应答时间
|
||||
*/
|
||||
private LocalDateTime fwdAnswerTime;
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user