如何在反序列化中将动态jackson参数与POJO类映射?

时间:2021-08-19 14:42:12

EDIT: I want to map the jackson object with POJO java class dynamically at the time of deserialization.

编辑:我想在反序列化时动态地将jackson对象映射到POJO java类。

Eg. {id:1,name:"rajeev", phone:"5555"}

例如。 {id:1,姓名:“rajeev”,电话:“5555”}

POJO class

POJO课程

class Data{
    public int id;
    public string name;
    public string contact;
}

The above jackson object must mapping with existing POJO class without any error. Here phone is the optional parameter

上面的jackson对象必须映射到现有的POJO类,没有任何错误。这里phone是可选参数

2 个解决方案

#1


0  

if you work with spring mvc this an exemple

如果你使用spring mvc这个例子

@Controller
public class YourJSONController {

    @RequestMapping(value="/YourUri", method = RequestMethod.GET)
    public @ResponseBody Data getDataInJSON() {

        Data data= new Data();
        //setter

        return data;

    }

}

and dont forget to add jackson data bind dependency to your pom.xml

并且不要忘记将jackson数据绑定依赖项添加到您的pom.xml中

#2


0  

If you mean that the json response attributs name may be different from your attributs name, you can use the annotation @SerializedName("ZIPNAME") of package com.google.gson.annotations.SerializedName.

如果您的意思是json响应属性名称可能与您的attributs名称不同,则可以使用com.google.gson.annotations.SerializedName包的注释@SerializedName(“ZIPNAME”)。

For example, your classe may look like :

例如,您的classe可能如下所示:

class Data{
public int id;
public string name;
@SerializedName("phone")
public string contact;
}

#1


0  

if you work with spring mvc this an exemple

如果你使用spring mvc这个例子

@Controller
public class YourJSONController {

    @RequestMapping(value="/YourUri", method = RequestMethod.GET)
    public @ResponseBody Data getDataInJSON() {

        Data data= new Data();
        //setter

        return data;

    }

}

and dont forget to add jackson data bind dependency to your pom.xml

并且不要忘记将jackson数据绑定依赖项添加到您的pom.xml中

#2


0  

If you mean that the json response attributs name may be different from your attributs name, you can use the annotation @SerializedName("ZIPNAME") of package com.google.gson.annotations.SerializedName.

如果您的意思是json响应属性名称可能与您的attributs名称不同,则可以使用com.google.gson.annotations.SerializedName包的注释@SerializedName(“ZIPNAME”)。

For example, your classe may look like :

例如,您的classe可能如下所示:

class Data{
public int id;
public string name;
@SerializedName("phone")
public string contact;
}