如何解决使用带有字典列表的 Java Beans 创建 Yaml
如何创建字典列表、值为列表的字典或两者的混合
我正在尝试使用带有snakeyaml 库的Java Pojos 构建以下YAML
- name: this is test1
ec2Group:
name: example.1
description: an example test1 group
- name: this is test2
ec2Group:
name: example.2
description: an example test2 group
运行我的代码后得到的是这个
- ec2Group:
description: an example EC2 group
name: example
- ec2Group:
description: an example EC22 group
name: exampl2e
这是我的 Java 定义
public class AWSSecurityGroupWrapper {
private String name;
private Ec2Group ec2Group;
}
public class Ec2Group {
private String name;
private String description;
}
这是我正在运行的 Java 程序
Representer representer = new Representer() {
@Override
protected NodeTuple representJavaBeanProperty(Object javaBean,Property property,Object propertyValue,Tag customTag) {
if (propertyValue == null || propertyValue == "") {
return null;
}
return super.representJavaBeanProperty(javaBean,property,propertyValue,customTag);
}
};
representer.addclasstag(AWSSecurityGroupWrapper.class,Tag.MAP);
representer.getPropertyUtils().setSkipMissingProperties(true);
DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
List<AWSSecurityGroupWrapper> groupWrappersList = new ArrayList<>();
AWSSecurityGroupWrapper awsSecurityGroupWrapper = new AWSSecurityGroupWrapper();
Ec2Group ec2Group = new Ec2Group();
ec2Group.setDescription("an example EC2 group");
ec2Group.setName("example");
awsSecurityGroupWrapper.setEc2Group(ec2Group);
StringWriter writer = new StringWriter();
Yaml yaml = new Yaml(representer,options);
yaml.dump(awsSecurityGroupWrapper,writer);
System.out.println(writer);
在这种情况下,Java Pojo 的正确表示是什么,任何帮助表示赞赏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。