我有以下POJO。它包含有关我机场的数据。
class MyClass
{
@JsonProperty("AirportCode")
String airportCode;
@JsonProperty("AirportID")
Integer airportId;
}
使用从API接收的JSON创建POJO对象。 API示例输出如下所示。
[
{
"AirportCode": "BBA",
"AirportID": 4276802,
},
{
"AirportCode": "SCQ",
"AirportID": 5325651,
}
]
我的代码的功能如下
void func()
{
//Get JSON from API and convert to POJO
//Do some processing on the POJO
//Convert POJO into JSON and write to file
}
文件内容如下
[
{
"AirportCode": "BBA-IN",
"AirportID": 4276802,
},
{
"AirportCode": "SCQ-USA",
"AirportID": 5325651,
}
]
但是我要求输出为驼峰(如POJO)
[
{
"airportCode": "BBA-IN",
"airportId": 4276802,
},
{
"airportCode": "SCQ-USA",
"airportId": 5325651,
}
]
无论如何,只有在反序列化到POJO期间才能获得@JsonProperty,而不是在序列化为JSON期间获得荣誉?
答案 0 :(得分:1)
您是否尝试使用不同的jsonProperty值注释getter和setter?直接它不会起作用,但是如果你改变了getter / setter名称,它应该被处理,就像它们属于不同的字段一样。
这样的事情:
class MyClass {
String airportCode;
Integer airportId;
@JsonProperty("airportCode")
public String getAirportCodeForJson() {
return airportCode;
}
@JsonProperty("AirportCode")
public void setAirportCode(String airportCode) {
this.airportCode = airportCode;
}
@JsonProperty("airportID")
public Integer getAirportIdForJson() {
return airportId;
}
@JsonProperty("AirportID")
public void setAirportId(Integer airportId) {
this.airportId = airportId;
}
}
答案 1 :(得分:0)
你可以反序列化为一个字典,然后是所有键的驼峰。之后,您就可以按预期使用它了。