fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

转换json 字符串是否没有详细区分?PropertyNamingStrategy

Open 8502596 opened this issue 10 months ago • 6 comments

新手不懂就问 如下代码 Jdk 21 graalvm , fastjson2 2.0.49

` import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.PropertyNamingStrategy; import com.alibaba.fastjson2.annotation.JSONType; import lombok.Data; @Data @JSONType(naming= PropertyNamingStrategy.LowerCase) public class User {

private  String username ;
private  String password ;

public static void main(String[] args) {
    User user=new User();
    user.setUsername("11111");
    user.setPassword("password");

    System.out.println(JSON.toJSONString(user));
}

}

` image

虽然我知道 修改如下 代码 去掉 @JSONType 即可正常

System.out.println(JSON.toJSONString(user, NameFilter.of(PropertyNamingStrategy.LowerCase)));

仍不能解释疑惑 为什么 这个枚举例如 @JSONType(naming= PropertyNamingStrategy.UpperCase) @JSONType(naming= PropertyNamingStrategy.PascalCase) @JSONType(naming= PropertyNamingStrategy.CamelCase) ... 这些 使用 System.out.println(JSON.toJSONString(user)); 正常 而LowerCase 却是不行 其他很多未测试 请大佬释疑

8502596 avatar Apr 18 '24 09:04 8502596

查看源码跟踪调试 发现 Utils->BeanUtils.java getterName 少了对应的 处理 image

红圈中 LowerCase 是我加上的,不知少了相关 PropertyNamingStrategy 里面的其他类型 是何意啊?

8502596 avatar Apr 19 '24 00:04 8502596

你来提交一个PR?

wenshao avatar Apr 19 '24 00:04 wenshao

sorry 新手瞎鼓捣的 不太会啊 还请大佬解决呗

8502596 avatar Apr 19 '24 01:04 8502596

https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.50-SNAPSHOT/ 问题已修复,请帮忙用2.0.50-SNAPSHOT版本验证

wenshao avatar Apr 20 '24 02:04 wenshao

同理 他也应该出现在 setterName 中 @JSONType(naming= PropertyNamingStrategy.LowerCase) System.out.println(json.toJavaObject(User.class));

请继续修正 @wenshao

8502596 avatar Apr 24 '24 05:04 8502596

同理 他也应该出现在 setterName 中 @jsontype(naming= PropertyNamingStrategy.LowerCase) System.out.println(json.toJavaObject(User.class));

请继续修正 @wenshao

谢谢提醒

yanxutao89 avatar Apr 24 '24 12:04 yanxutao89

https://github.com/alibaba/fastjson2/releases/tag/2.0.50 2.0.50已发布,请用新版本

wenshao avatar May 12 '24 05:05 wenshao