如何从Jackson在RestController
中生成的json响应中排除所有空json对象{}
、数组[]
或空对象的数组[{},{}]
?
我正在为一个客户端构建一个Spring Boot REST API。API向数据库发送请求,并且必须生成JSON响应。
@JSONInclude(jsonInclude.include.non_null)
注释{}
或数组[]
或空对象的数组[{},{}]
。这就是我被困住的地方(请参见下面的示例)DAO层中的手动映射:
public List<A> daoMethod() {
List<Object[]> dbResult = getDbResults();
List<A> javaObjects = new ArrayList<>();
// build nested Java objects
for (Object[] line in dbResult) {
A a = new A();
a.setProp1(line[0]);
a.setProp2(line[1]);
// and so on...
javaObjects.add(a);
return javaObjects ;
}
}
控制器方法:
public ResponseEntity<A> controllerMethod() {
List<A> javaObjects = myDao.daoMethod();
return new ResponseEntity(javaObjects, HttpStatus.OK);
}
必须在JSON响应中序列化的所有DTO类都扩展了basedTo
类:
@JsonInclude(JsonInclude.Include.NON_NULL) // removes all fields having NULL value
public abstract class BaseDto implements Serializable{
// some properties...
}
{
prop1: "some string",
prop2: [{},{},{}],
prop3: [],
prop4: {},
}
预期:
{
prop1: "some string"
}
尝试使用NON_EMPTY
@JsonInclude(JsonInclude.Include.NON_EMPTY)
值,该值指示仅不包含具有空值的属性或被视为空的属性。
我用php curl发出请求,一些数据在响应中丢失。(数据数组中填充了空对象,数据在此丢失) 我的代码是: 以下是输出: curl_getinfo 答复: 请注意最后“数据”键中的空数组。 我在postman和jQuery中尝试了同样的请求。它返回正确的数据,没有任何损失。下面附有Javascript。 为什么php会丢失一些数据(数据键数组)以及如何保留它?
我正在使用空手道JavaAPI处理Json对象。我将创建以下json: 当我尝试,我得到以下错误: json路径语法经过交叉检查是正确的,我可能缺少的任何其他点? 编辑:我正在使用v1。空手道核心1.0
基本上,我不希望在生成的JSON文件中出现任何空的JSON数组或对象。我已经使用以下方法相应地配置了ObjectMapper: 这适用于数组、集合和字符串。但是,如果我有一个空对象(=所有属性都为null或empty),它仍然会显示在生成的JSON中,如下所示:
问题内容: 我正在尝试使用gson将json字符串转换为对象。 我在下面有一个非常简单的示例,它可以运行,但是结果答案为空,即:我的Answer对象的文本字段为空。 问题答案: 因为您的JSON与您的课程不符。 现在,您的JSON是一个对象数组,每个对象包含一个对象作为字段。 JSON的处理方式如下所示: 编辑以添加评论: 如果您无法更改输出,则需要一个“包装器”。就像是: 并使用这些数组。这就是
问题内容: 我有一个返回带有单个属性的JSON对象的请求,该属性是一个数组。如何测试数组是否为空? 使用jQuery代码,例如: 我可以用什么代替if(data.RoleOwners == [])来测试RoleOwners是否为空数组? 谢谢,马特 问题答案:
下面是一个json响应的示例。正如您所看到的,像:news、number_likes、number_comment、number_post、user和owner这样的字段总是存在。但是像:place、place_mark、comment、album、photo这样的字段并不总是存在。这取决于新闻的类型。 请帮帮我!为了正确的json反序列化,我需要做什么?也许有人有经验,在编写自定义转炉工厂或可以