java - 无法使用java打印嵌套json中的所有非空值
问题描述
我的目的是仅使用非空对象打印 Json。如附图中所示,我有不想打印的空对象。选择 Gson 或 Jackson 等哪个库并不重要
到目前为止尝试了很多组合,但没有奏效
我的数据结构是:
Map<AWSRegion, List<SecurityGroupDiff>> listEntry...
public class SecurityGroupDiff {
@JsonInclude(Include.NON_EMPTY) ... // on all fields/objects
private String groupId;
private String groupName;
private String vpcId;
private String owner;
private String type;
private List<IPPermissionDiff> ipPermissionDiffs;
}
到目前为止尝试:
private static final ObjectMapper MAPPER = new ObjectMapper().
setSerializationInclusion(Include.NON_NULL).setSerializationInclusion(Include.NON_EMPTY).setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
MAPPER.writerWithDefaultPrettyPrinter()
.writeValueAsString(listEntry)
结果还是一样...
{
"CANADA" : [ { }, { }, { }, { }, {
"ipPermissionDiffs" : [ { }, { }, { }, { } ]
}, { }, { }, { } ],
"ASIA_SIDNEY" : [ {
"ipPermissionDiffs" : [ { }, { }, { }, { }, { } ]
}, { }, { }, { }, { }, { }, { }, {
"ipPermissionDiffs" : [ { }, { }, { }, { } ]
}, { } ],
"EU" : [ { }, { }, { }, { }, { }, { }, { }, { }, {
"ipPermissionDiffs" : [ { }, { }, { }, { }, { }, { }, { } ]
}, { } ]
}
谢谢
解决方案
推荐阅读
- excel - 为什么不是所有的记录都从数据中返回
- regex - 如何为 Safari 创建正则表达式
- javascript - 有没有办法在 JSON 中转换 JS 数组或在 Android 中转换数组?
- c# - DataTrigger 在 RadioButton IsChecked 时更新 DatePicker
- node.js - 如何使用 aws-sdk 将文件同步上传到 S3?
- azure-cosmosdb - 我应该为子文档使用 _self SelfLink
- r - 根据另一个表中的并发日期范围划分列值?
- c++11 - 引用折叠规则是否适用于返回类型?
- python - 有没有办法在不定义布局的情况下将 QPushButton 对象动态添加到 QWidget?
- sql - 爆炸后如何从数组中删除一个元素