Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用codehaus.jackson.map.ObjectMapper映射无法识别的字段_Java_Json - Fatal编程技术网

Java 如何使用codehaus.jackson.map.ObjectMapper映射无法识别的字段

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\"

我有点被json字符串到java对象转换的一个问题所困扰。我知道在\u UNKNOWN\u属性上使用反序列化config.Feature.FAIL\u可以忽略与对象中字段名称不匹配的字段

然而,有没有一种方法可以将字段以某种方式从json字符串映射到对象,某种类型的API指令说“如果在转换时找到X,请将X的值映射到Y”

JSON字符串的名称为name2,因此我想将name2的值映射到pojo的name变量

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;
    }

}