mirror of https://github.com/alibaba/fastjson2.git
fix only return null when fist char is n, for issue #3537 (#3541)
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, macos-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, ubuntu-24.04) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, windows-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, macos-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, ubuntu-24.04) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, windows-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, macos-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, ubuntu-24.04) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, windows-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, macos-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, ubuntu-24.04) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, windows-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, macos-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, ubuntu-24.04) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, windows-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, macos-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, ubuntu-24.04) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, windows-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, macos-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, ubuntu-24.04) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, windows-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, macos-latest) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, ubuntu-24.04) (push) Has been cancelled
Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, windows-latest) (push) Has been cancelled
Details
* fix only return null when fist char is n, for issue #3537 * fix improve test case
This commit is contained in:
parent
3b5d8d6fd1
commit
ab36a7104c
|
@ -123,6 +123,7 @@ public class FieldReaderObject<T>
|
||||||
|
|
||||||
Object value;
|
Object value;
|
||||||
try {
|
try {
|
||||||
|
char first = jsonReader.current();
|
||||||
if (jsonReader.nextIfNullOrEmptyString()) {
|
if (jsonReader.nextIfNullOrEmptyString()) {
|
||||||
if (defaultValue != null) {
|
if (defaultValue != null) {
|
||||||
value = defaultValue;
|
value = defaultValue;
|
||||||
|
@ -135,7 +136,7 @@ public class FieldReaderObject<T>
|
||||||
} else if (fieldClass == Optional.class) {
|
} else if (fieldClass == Optional.class) {
|
||||||
value = Optional.empty();
|
value = Optional.empty();
|
||||||
} else {
|
} else {
|
||||||
value = null;
|
value = first == 'n' ? null : "";
|
||||||
}
|
}
|
||||||
} else if (jsonReader.jsonb) {
|
} else if (jsonReader.jsonb) {
|
||||||
if (fieldClass == Object.class) {
|
if (fieldClass == Object.class) {
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
package com.alibaba.fastjson2.issues_3500;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
|
public class Issue3537 {
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
String json = "{\"value\":\"\"}";
|
||||||
|
SimpleTestValue s = JSON.parseObject(json, SimpleTestValue.class);
|
||||||
|
assertEquals("", s.getValue());
|
||||||
|
json = "{\"value\":null}";
|
||||||
|
s = JSON.parseObject(json, SimpleTestValue.class);
|
||||||
|
assertNull(s.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class SimpleTestValue {
|
||||||
|
private Object value;
|
||||||
|
|
||||||
|
// 标准 getter/setter
|
||||||
|
public Object getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
public void setValue(Object value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 自定义 getter 会导致问题
|
||||||
|
public List<String> getRelates() {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue