java - 根据条件忽略 RequestBody 值
问题描述
我正在传递一个对象并作为RequestBody
Spring 框架的注释接收。但是我想传递一个 hashmap 的值,它将作为键值对附加到 pojo 中的对象,我也有 ENUM 作为第二个变量。
我的宝乔:
private CommandConstants command; // enum
private HashMap<String,String> commandArgs; //hashmap
枚举在哪里CommandConstants
只是作为字符串接收的命令。
const res= await axios.post(configs.Data.handleControl, { command:action,
commandArgs: ((action==="MAKE_ALL_SANDWICHES" ||
action==="FLIP_ALL_BURGERS") && [{}]) ||((action==="TOAST_SANDWICH" &&
addBurger!==null) && [{key:"BURGERCOUNT", value:addBurger}])||
((action==="MAKE_SANDWICH" || action==="SPOIL_SANDWICH" ||
action==="FLIP_BURGER") && [{key:"TOASTERID", value:toasterId}]) ||
(action==="MARINATE_BURGER" && [{key:"CATEGORY",
value:wired?"WIRED":"WIRELESS"},{key:wired?"WIRED":"WIRELESS", value:wired?
wired:wireless}]) ||(action==="RUST_BURGER" && [{key:"CATEGORY",
value:wired?"WIRED":"WIRELESS"},{key:wired?"WIRED":"WIRELESS", value:wired?
wired:wireless}])});
忽略不需要的东西。
实际结果:
{"command":"MAKE_ALL_SANDWICHES","commandArgs":[{"key":null,"value":null}]}
预期结果:
{"command":"START_ALL_MACHINES"}`
如果是,我可以忽略上面的 POJO 变量null
吗?
也许我在我的 reactjs 部分犯了一个错误
我只在命令所在的两个动作中得到意外的结果,MAKE_ALL_SANDWICHES
或者FLIP_ALL_BURGERS
因为只有在这两种情况下我没有传递任何命令Args
解决方案
不确定我是否正确理解了这个问题,但是如果您不希望服务器将空值传递给正文中的客户端,那么您可以使用:注释您的 POJO 类,@JsonInclude(JsonInclude.Include.NON_NULL)
它们应该被过滤掉。
推荐阅读
- android - 无法停止从后台服务启动的蓝牙适配器
- javascript - 根据对象中键的值对数组中的对象进行分组
- sql - 如何将单行 R data.frame 插入 SQL Server 数据库?
- javascript - 获得数组中唯一序列的最短方法
- android - 找不到与包名称匹配的客户端 (Google Analytics) - 多个 productFlavors/应用程序 ID
- php - 在 php 和 ajax 中发布和回显数据
- sql - SQL Server:名称连接 - 多个用户
- ios - 自定义字体在 iOS 项目中不起作用
- c++ - c++ 紧耦合模板定义,无限重复模板参数
- javascript - 车把每个助手不工作