当前位置: 首页 > 知识库问答 >
问题:

多DTO手动初始化

裴钧
2023-03-14

在Microservice中,我们将多个DTO数据作为字符串json发布。

控制器:

@RequestMapping(value="/json",method = RequestMethod.POST)
public String getjson(@RequestBody String json) {

   ///Service process
}

发布Json:

{
"dtos":{
    "Dto1":{   
        "name":"Dto1 Name Field",
        "filter":[
            {"key":"f1","value":1},
            {"key":"f2","value":10}
        ]
    },
    "Dto2":{
        "city":"Newyork",    
        "filter":[
            {"key":"f1","value":1},
            {"key":"f2","value":10},
    {"key":"f3","value":10}
        ]
    }
},
"page":1
}

DTO:

public class Dto1{
   private String name;
}
public class Dto2{
   private String city;
}

Dto1和Dto2是java DTO对象名称.如何将字符串json转换为java对象?

共有3个答案

孟璞
2023-03-14

将传入的json转换为dto的应用程序

在此处输入链接描述

微生阳平
2023-03-14

您可以使用jackson库中的ObjectMapper,如下所示。

String json = "";
ObjectMapper objectMapper = new ObjectMapper();
Dto1 dto = objectMapper.readValue(json, Dto1.class);

但是在您的特定示例中,您不必有两个DTO类。您可以将值封装在一个DTO中,并以json格式列出该DTO的不同实例。

NB.json字符串应该是要检索的首选类的表示,例如Dto1.java.

严言
2023-03-14

您可以创建包含所有属性和接收请求的新DTO:

public class Filter{
    private String key;
    private int value;
}

public class Dto1{
    private String name;
    private List<Filter> filter;
}

public class Dto2{
    private String city;
    private List<Filter> filter;
}

public class Dtos{
    public Dto1 dto1;
    public Dto2 dto2;
}

public class DtoToReceiveInRequest{
    private Dtos dtos;
    private int page;
}

控制器

@PostMapping
public String getjson(@RequestBody DtoToReceiveInRequest json) {

   ///Service process
}

 类似资料:
  • 我试图在登录后(从登录成功过滤器)获取用户的配置文件数据,但我发现延迟加载数据的异常。请参见以下示例代码: AuthenticationSuccessHandler。JAVA 用户服务。JAVA 用户模型。JAVA 用户登录响应to.java 当在中序列化UserLoginResponseDto类型的对象时,我会看到以下错误消息- org.hibernate.懒惰初始化角色集合失败:UserMod

  • 本文向大家介绍在windows下手动初始化PostgreSQL数据库教程,包括了在windows下手动初始化PostgreSQL数据库教程的使用技巧和注意事项,需要的朋友参考一下 环境:win7 64 sp1 PG:9.3.5 1、创建用户postgres,密码同样是postgres: 2、在数据库根目录下建立data目录: 3、去掉administrator对data目录的权限: 处理的目录:

  • 一方面,我有一个CronScheduler类,用于每个应用程序启动一次,配置一个TimerService。 另一方面,我有一个繁重的任务(注释为),我想在计时器的中调用该任务。请注意,在计时器中,我创建了一个调用的线程 代码: 结果是被多次调用。注释工作正常吗?

  • 在开始开发PX4之前,系统应当以默认配置进行初始化,以确保硬件已正确装配并通过测试。下方视频讲解了 Pixhawk硬件与QGroundControl的安装过程。 这里是已支持的参考机架列表。 须知: 下载DAILY BUILD版本的QGroundControl并跟随下方的视频教程来设置你的飞行器。参考QGroundControl 教程来了解任务规划(mission planning),飞行(fly

  • 问题内容: 我想初始化一个多维列表。基本上,我想要一个10x10的网格-10个列表的列表,每个列表包含10个项目。 每个列表值都应初始化为整数0。 单行执行此操作的明显方法:将不起作用,因为它会生成一个包含10个引用的列表,该列表引用一个列表,因此更改任何行中的项都会更改所有行中的项。 我看过的文档讨论了用于复制列表的方法,但是在使用乘法器时仍然无法使用:与效果相同。 除了创建s循环之外,是否有一

  • 1. 前言 通过之前的学习,我们可以熟练掌握 Spring 容器初始化的方法。常用的方法:一种是纯 xml 文件的方式,第二种是使用群体最多的一种,就是 xml 文件搭配类上面的注解,来进行初始化容器。 我们今天讲解一种全新的方法,也是目前最为流行的一种方法。是基于 JavaConfig 的方式来实现。通俗地说也叫基于注解的方式。 疑问导出: 我们学完了那么多种 Spring 的使用,其实完全可以