Skip to content

Commit 336e809

Browse files
committed
fix boolean field annotation not work, for issue #2795
1 parent 73be942 commit 336e809

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

core/src/main/java/com/alibaba/fastjson2/util/BeanUtils.java

+2
Original file line numberDiff line numberDiff line change
@@ -1339,6 +1339,8 @@ public static Field getField(Class objectClass, Method method) {
13391339
} else if (fieldName.regionMatches(0, methodName, prefix, fieldNameLength)) {
13401340
fields[1] = field;
13411341
}
1342+
} else if (boolean.class == field.getType() && methodName.equals(fieldName)) {
1343+
fields[0] = field;
13421344
}
13431345
});
13441346
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.alibaba.fastjson2.issues_2700;
2+
3+
import com.alibaba.fastjson.annotation.JSONField;
4+
import com.alibaba.fastjson2.JSONObject;
5+
import lombok.Builder;
6+
import lombok.Data;
7+
import org.junit.jupiter.api.Test;
8+
9+
import static org.junit.jupiter.api.Assertions.assertEquals;
10+
11+
public class Issue2795 {
12+
@Builder
13+
@Data
14+
public static class Student {
15+
@JSONField(name = "is_judge")
16+
private boolean isJudge;
17+
}
18+
19+
@Test
20+
public void testFastJson() {
21+
Student student = Student.builder().isJudge(true).build();
22+
System.out.println(com.alibaba.fastjson.JSON.toJSONString(student));
23+
assertEquals("{\"is_judge\":true}", JSONObject.toJSONString(student));
24+
}
25+
}

0 commit comments

Comments
 (0)