gpt4 book ai didi

java - 使 JsonGetter 不区分大小写

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:53 26 4
gpt4 key购买 nike

我正在使用 JacksonAnnotationSpring Framework 来解析从我的应用程序的 Web 服务获取的 JSON。

我有来自两种不同方法的相同数据结构,但其中一种方法中有一个字段大写。我不想仅仅因为这个而创建两个数据结构。

有什么方法可以让 JsonGetter 不区分大小写,或者至少让它接受两个版本的字符串?

目前我必须将其用于方法 A

@JsonGetter("CEP")
public String getCEP() {
return this.cep;
}

这是方法B

@JsonGetter("Cep")
public String getCEP() {
return this.cep;
}

谢谢

最佳答案

您可以为每种可能的属性名称创建新的 setter 方法:

import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonProgram {

public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.readValue("{\"Cep\":\"value\"}", Entity.class));
System.out.println(mapper.readValue("{\"CEP\":\"value\"}", Entity.class));
}
}

class Entity {

private String cep;

public String getCep() {
return cep;
}

@JsonSetter("Cep")
public void setCep(String cep) {
this.cep = cep;
}

@JsonSetter("CEP")
public void setCepCapitalized(String cep) {
this.cep = cep;
}

@Override
public String toString() {
return "Entity [cep=" + cep + "]";
}
}

关于java - 使 JsonGetter 不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com