Skip to content

Commit cc1b0d2

Browse files
mek1986wenshao
authored andcommitted
Issue2371问题fixed
1 parent 765d386 commit cc1b0d2

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

core/src/main/java/com/alibaba/fastjson2/reader/ObjectReaderCreator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1637,7 +1637,7 @@ boolean record = BeanUtils.isRecord(objectClass);
16371637
if (!record) {
16381638
BeanUtils.declaredFields(objectClass, field -> {
16391639
fieldInfo.init();
1640-
fieldInfo.ignore = (field.getModifiers() & Modifier.PUBLIC) == 0;
1640+
fieldInfo.ignore = (field.getModifiers() & Modifier.PUBLIC) == 0 && ((beanFeatures & JSONReader.Feature.FieldBased.mask) == 0);
16411641
fieldInfo.features |= beanFeatures;
16421642
fieldInfo.format = beanFormat;
16431643

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.alibaba.fastjson2.issues_2300;
2+
3+
import com.alibaba.fastjson2.JSON;
4+
import com.alibaba.fastjson2.JSONReader;
5+
import com.alibaba.fastjson2.annotation.JSONType;
6+
import org.junit.jupiter.api.Test;
7+
8+
import static org.junit.jupiter.api.Assertions.assertEquals;
9+
10+
public class Issue2371 {
11+
@JSONType(deserializeFeatures = JSONReader.Feature.FieldBased)
12+
private static class Bean {
13+
private String testField;
14+
15+
public String getTestField() {
16+
return testField;
17+
}
18+
}
19+
20+
@Test
21+
public void test() {
22+
Bean test = JSON.parseObject("{\"testField\": \"My Test\"}", Bean.class);
23+
assertEquals("My Test", test.getTestField());
24+
}
25+
}

0 commit comments

Comments
 (0)