gpt4 book ai didi

java - 如何使用 Jackson ObjectMapper 获取字段类型?

转载 作者:太空宇宙 更新时间:2023-11-04 13:54:52 26 4
gpt4 key购买 nike

知道如何根据 Jackson 的 ObjectMapper 对象和特定类检索给定 json 路径的 Java 类型吗?

假设我们有

class User {
String fullName;
Integer age;
Boolean active;
// ...
}
class Account {
@JsonProperty("accountOwner")
User owner;
// ...
}

和 Jackson 的 ObjectMapper 我想找到一种方法将字符串值反序列化为给定路径上的字段表示的类型的对象(或至少获取其类型),例如

  • 给定“/accountOwner/age”和“25”,得到 25(整数类型)
  • 给定“/accountOwner/active”和“true”,得到 true( boolean 类型)
  • 给定“/accountOwner/fullName”和“Johny Bravo”,得到“Johny Bravo”字符串
  • 等等...

最佳答案

我这里有一个例子:

User user = new User();
ObjectMapper mapper = new ObjectMapper();
try {
user = mapper.readValue(new File("D:\\json.txt"), User.class);
System.out.println("user : " + user);
} catch (Exception e) {
e.printStackTrace();
}

我的 bean :

public class User {
String fullName;
Integer age;
Boolean active;
/**
* @return the fullName
*/
public String getFullName() {
return fullName;
}
/**
* @param fullName the fullName to set
*/
public void setFullName(String fullName) {
this.fullName = fullName;
}
/**
* @return the age
*/
public Integer getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(Integer age) {
this.age = age;
}
/**
* @return the active
*/
public Boolean getActive() {
return active;
}
/**
* @param active the active to set
*/
public void setActive(Boolean active) {
this.active = active;
}

@Override
public String toString() {
return "User [fullName=" + fullName + ", age=" + age + ", " +
"active=" + active + "]";
}
}

最后是 Json 对象 (json.txt):

{"fullName":"Pedro Gamarra","age":30,"active":true}

希望这可以帮助你。

关于java - 如何使用 Jackson ObjectMapper 获取字段类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29923354/

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