FastJson升级到1.2.58,大小写兼容转换问题

0kjbasz6  于 10个月前  发布在  其他
关注(0)|答案(1)|浏览(94)
1、结论

fastjson自1.2.57版本开始,存在该问题,即json中存在相同不区分大小写的字段,在转换为BO时,fastjson会优先转换第一个。之前的版本是优先转换名称一致的,麻烦考虑下是否保持和原来相同的逻辑

2、json报文数据
  1. {"polsubamnt":"100","polSubAmnt":"200",}
3、bo数据
  1. public class TestBO{
  2. private String polSubAmnt;
  3. public String getPolSubAmnt(){
  4. return polSubAmnt;
  5. }
  6. public void setPolSubAmnt(String polsubamnt){
  7. this.polSubAmnt=polsubamnt;
  8. }
  9. }
4、验证程序
  1. /**
  2. * fastjson大小写转换问题验证
  3. */
  4. @Test
  5. public void contextLoads() {
  6. String jsonData="{\"polsubamnt\":\"100\",\"polSubAmnt\":\"200\",}";
  7. TestBO testBO = JSON.parseObject(jsonData,TestBO.class);
  8. System.out.println("转换后的值为:"+testBO.getPolSubAmnt());
  9. }
5、升级版本前
  1. 转换后的值为:100
6、升级版本后
  1. 转换后的值为:200
hpcdzsge

hpcdzsge1#

@leopard3699
今天也注意到这个问题了,值得关注,这种case我理解是可以被利用的,试想如果用户输入可以覆盖一个代码控制的字段。/eye cc @wenshao

相关问题