栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如果领先的驼峰式案例单词只有一个字母长,为什么杰克逊2无法识别第一个大写字母?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如果领先的驼峰式案例单词只有一个字母长,为什么杰克逊2无法识别第一个大写字母?

您看到的问题是由于Jackson使用Java Bean命名约定来弄清楚Java类中的Json属性。

下面是一个参考,你看到的具体问题,建议不大写没有在你的领域的前两个字母。如果您使用诸如IntelliJ或eclipse之类的IDE,并让IDE为您生成设置器,您会注意到发生了同样的“行为”,最终将得到以下方法:

public void setaLogId(String aLogId) {    this.aLogId = aLogId;}public String getaLogId() {    return aLogId;}

因此,当您将“ L”更改为小写字母时,Jackson就能弄清楚要映射的字段。

上面已经说了,您仍然可以选择使用“
aLogId”字段名称,并使Jackson运行所有您需要做的就是使用其中的

@JsonProperty
注释
aLogId

@JsonProperty("aLogId")private String aLogId;

以下测试代码显示了它如何工作:

import com.fasterxml.jackson.annotation.JsonProperty;import com.fasterxml.jackson.databind.ObjectMapper;public class Test {    @JsonProperty("aLogId")    private String aLogId;    public void setaLogId(String aLogId) {        this.aLogId = aLogId;    }    public String getaLogId() {        return aLogId;    }    public static void main(String[] args) {        ObjectMapper objectMapper = new ObjectMapper();        Test test = new Test();        test.setaLogId("anId");        try { System.out.println("Serialization test: " + objectMapper.writevalueAsString(test)); String json = "{"aLogId":"anotherId"}"; Test anotherTest = objectMapper.readValue(json, Test.class); System.out.println("Deserialization test: " +anotherTest.getaLogId());        } catch (Exception e) { e.printStackTrace();        }    }}

测试的输出为:

Serialization test: {"aLogId":"anId"}

Deserialization test: anotherId



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435505.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号