Java 如何使用codehaus.jackson.map.ObjectMapper映射无法识别的字段
我有点被json字符串到java对象转换的一个问题所困扰。我知道在\u UNKNOWN\u属性上使用反序列化config.Feature.FAIL\u可以忽略与对象中字段名称不匹配的字段 然而,有没有一种方法可以将字段以某种方式从json字符串映射到对象,某种类型的API指令说“如果在转换时找到X,请将X的值映射到Y” JSON字符串的名称为name2,因此我想将name2的值映射到pojo的name变量Java 如何使用codehaus.jackson.map.ObjectMapper映射无法识别的字段,java,json,Java,Json,我有点被json字符串到java对象转换的一个问题所困扰。我知道在\u UNKNOWN\u属性上使用反序列化config.Feature.FAIL\u可以忽略与对象中字段名称不匹配的字段 然而,有没有一种方法可以将字段以某种方式从json字符串映射到对象,某种类型的API指令说“如果在转换时找到X,请将X的值映射到Y” JSON字符串的名称为name2,因此我想将name2的值映射到pojo的name变量 String jsonAsString = "{\"id\":\"a\"
String jsonAsString =
"{\"id\":\"a\"," +
"\"name2\":\"something\"}";
谢谢。您可以通过使用注释来完成 对于Jackson:使用@JsonProperty 对于GSon:使用@SerializedName
public class SampleJSONDTO implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 4694247925037679167L;
@JsonProperty(value = "leftHand")
private int left;
@JsonProperty(value = "rightHand")
private int right;
public int getLeft()
{
return left;
}
public void setLeft(int left)
{
this.left = left;
}
public int getRight()
{
return right;
}
public void setRight(int right)
{
this.right = right;
}
}
我不太明白。你能给出一个JSON示例,以及它如何映射到某个POJO吗?@SotiriosDelimanolis:当然,我会更新这个问题。这样更好。下面的答案应该是你所需要的。@SotiriosDelimanolis:谢谢你,它的效果很好。
public class SampleJSONDTO implements Serializable
{
/**
*
*/
private static final long serialVersionUID = 4694247925037679167L;
@JsonProperty(value = "leftHand")
private int left;
@JsonProperty(value = "rightHand")
private int right;
public int getLeft()
{
return left;
}
public void setLeft(int left)
{
this.left = left;
}
public int getRight()
{
return right;
}
public void setRight(int right)
{
this.right = right;
}
}