我目前正在开发一个与api集成的sdk(作为客户机)。我的问题是(我甚至不确定这是一个问题),但我希望我的请求只包含初始化的参数。现在如何生成它们的示例:
{
"scenarioKey":"",
"bulkId":"",
"destinations":[
{
"messageId":"xxxxx",
"to":{
"phoneNumber":""
}
}
],
"sms":null
}
sms参数从未启动,因此我不希望它包含在请求正文中,这是一种不使用此参数“sms”的请求方式吗?
顺便说一下,我正在使用httpentity:
HttpEntity<Object> entity = new HttpEntity<>(bodyObject, headers);
2条答案
按热度按时间oknwwptz1#
SpringBoot允许简单配置它在application.properties文件中使用的jackson objectmapper。
文档中描述了支持的属性(https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-自定义对象Map器(objectmapper)
明确地
spring.jackson.default-property-inclusion=non_null
在application.properties中应该做到这一点。如果要对特定的类或属性执行此操作,jackson有注解
@JsonInclude(Include.NON_NULL)
.tyu7yeag2#
如果您正在使用jackson序列化json,那么应该查看
setSerializationInclusion()
上的方法ObjectMapper
https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/objectmapper.html#setserializationinclusion(com.fasterxml.jackson.annotation.jsoninclude.include)下面是一个简单的测试用例,它可以防止
sms
json输出中包含的字段: