根据条件忽略RequestBody值

时间:2019-06-25 10:48:53

标签: java spring reactjs

我正在传递一个对象,并作为spring框架的RequestBody注释接收。但是我想传递一个hashmap值,它将作为键值对附加到pojo中的对象上,另外我还有ENUM作为第二个变量。

我的Pojo:

private CommandConstants command; // enum
private HashMap<String,String> commandArgs; //hashmap

CommandConstants是一个枚举,只是一个以String形式接收的命令。

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"}`

如果它是null,我可以忽略上面的POJO变量吗?

也许我在reactjs部分中犯了一个错误

在命令为MAKE_ALL_SANDWICHESFLIP_ALL_BURGERS的两个动作中,我仅得到了意外结果,因为仅在这两种情况下,我没有传递任何 commandArgs >

1 个答案:

答案 0 :(得分:0)

不确定我是否正确理解了这个问题,但是如果您不希望将null值由服务器传递给正文中的客户端,则可以使用@JsonInclude(JsonInclude.Include.NON_NULL)注释您的POJO类,并且它们应该是过滤掉。