在保持相同的子代关系的同时,我应如何将请求主体映射到另一个对象?

罗希特·辛格

我有一个带有此模型类的请求正文:

public class IvrRequest {
    int age;
    String name;
    String address;
    List<IvrRequest> children;
}

我想将此映射到另一个类模型,例如:

public class IvrMapper {
    int id;
    String name;
    List<IvrMapper> resourceElements;
}

我应该使用哪种方法?

例:-

{
    "age":16,
    "name":"Rohit",
    "address":"adgsgdsdfgsdfgsf",
    "children":[
    {
        "age":16,
        "name":"Rohit",
        "address":"adgsgdsdfgsdfgsf",
        "children":[{
            "age":16,
            "name":"Rohit",
            "address":"adgsgdsdfgsdfgsf"                
        }]
    },
    {
        "age":45,
        "name":"Singh",
        "address":"45afasdfas54df6asdf",
        "children":[{
            "age":55,
            "name":"nitin",
            "address":"@%^%@#^Ghagdhasdhg"              
        }]
    }]
}

这是请求正文的示例。

米恰尔·乔伯

你没有指定你使用的库,所以我建议使用Jackson,允许快速和容易deserialising从JSONJava模型,并从一个POJO到其他。如果您不能更改类或类属于3-rd party库,则可以始终使用MixInfeature以下示例显示了如何:

  • DeserialiseJSONIvrRequest
  • DeserialiseJSONIvrMapper
  • 转换IvrRequestIvrMapper

简单的应用程序:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.util.List;

public class JsonApp {

    public static void main(String[] args) throws Exception {
        File jsonFile = new File("./resource/test.json").getAbsoluteFile();

        ObjectMapper mapper = new ObjectMapper();
        mapper.addMixIn(IvrMapper.class, IvrMapperMixIn.class);

        System.out.println("Parse IvrRequest model: ");
        IvrRequest ivrRequest = mapper.readValue(jsonFile, IvrRequest.class);
        System.out.println(ivrRequest);

        System.out.println("Parse IvrMapper model: ");
        System.out.println(mapper.readValue(jsonFile, IvrMapper.class));

        System.out.println("Convert IvrRequest to IvrMapper");
        System.out.println(mapper.convertValue(ivrRequest, IvrMapper.class));
    }
}

@JsonIgnoreProperties(ignoreUnknown = true)
interface IvrMapperMixIn {

    @JsonProperty("age")
    int getId();

    @JsonProperty("children")
    List<IvrMapper> getResourceElements();
}

class IvrRequest {

    private int age;
    private String name;
    private String address;
    private List<IvrRequest> children;

    // getters, setters, toString
}

class IvrMapper {
    private int id;
    private String name;
    private List<IvrMapper> resourceElements;

    // getters, setters, toString
}

应用上方的照片:

Parse IvrRequest model: 
age=16, name='Rohit', address='adgsgdsdfgsdfgsf'
 children=
    age=16, name='Rohit', address='adgsgdsdfgsdfgsf'
 children=
    age=16, name='Rohit', address='adgsgdsdfgsdfgsf'

    age=45, name='Singh', address='45afasdfas54df6asdf'
 children=
    age=55, name='nitin', address='@%^%@#^Ghagdhasdhg'


Parse IvrMapper model: 
id=16, name='Rohit'
 resourceElements=
    id=16, name='Rohit'
 resourceElements=
    id=16, name='Rohit'

    id=45, name='Singh'
 resourceElements=
    id=55, name='nitin'


Convert IvrRequest to IvrMapper
id=16, name='Rohit'
 resourceElements=
    id=16, name='Rohit'
 resourceElements=
    id=16, name='Rohit'

    id=45, name='Singh'
 resourceElements=
    id=55, name='nitin'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将一个对象映射到另一个对象?

如何将一个可观察对象映射到另一个

Angular 9 如何将 1 个对象映射到另一个

Automapper如何将一个对象的列表映射到另一个对象的列表

如何将多个不同的请求主体映射到同一个 POJO

如何将对象映射中的数组映射到另一个数组

如何将一个对象投射到另一个对象中?

表示将一个对象映射到相同属性的另一个对象

如何将对象响应映射到 Java 中的另一个 ObjectDto

如何将一个范围内的数字映射到相同范围内的另一个而不发生冲突?

如何将列名从 df 快速映射到另一个?

如何将字典值映射到另一个字典

如何将Ctrl + Esc映射到autohotkey中的另一个键

如何将针对DTO的OData查询映射到另一个实体?

如何将参数化的枚举从泛型映射到另一个?

python-如何将整数数组映射到另一个整数

如何将字典映射到另一个字典Python

打字稿,将一个对象映射到另一个对象?

将一个可观察的嵌套对象映射到另一个对象

如何将另一个网站嵌入到我自己的网站中以保持相同的标题

如何将一个数据框映射到另一个(python熊猫)?

如何将一个枚举映射到打字稿中的另一个枚举?

JavaScript:如何映射两个对象以获取将第一个对象的 Id 映射到另一个对象的名称的输出?

如何检查我们是否可以将一个对象投射到另一个对象

我如何将一个可选映射到一个原始的可选映射?

如何将对象数组中的项目映射到另一个数组中的状态

从流操作中,如何将一组值映射到另一个值?

如何将值从另一个数据框映射到另一个数据框的标头

如何将主目录中的特殊路径映射到另一个驱动器上的路径?