SnakeYAML-如何使用特定变量名转储YAML文件
我有一个POJO,看起来像这样:SnakeYAML-如何使用特定变量名转储YAML文件,yaml,snakeyaml,Yaml,Snakeyaml,我有一个POJO,看起来像这样: public class Foo { private String barA; private String barB; public void setBarA(String barA) { this.barA = barA; } public void setBarB(String barB) { this.barB = barB; } public String g
public class Foo {
private String barA;
private String barB;
public void setBarA(String barA) {
this.barA = barA;
}
public void setBarB(String barB) {
this.barB = barB;
}
public String getBarA() {
return barA;
}
public String getBarB() {
return barB;
}
}
Representer representer = new Representer();
representer.addClassTag(Foo.class, tag.MAP);
DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
Yaml yaml = new Yaml(representer, options);
StringWriter writer = new StringWriter();
yaml.dump(foo, writer);
barA
barB
bar_a
bar_b
我将其转换为YAML的代码如下所示:
public class Foo {
private String barA;
private String barB;
public void setBarA(String barA) {
this.barA = barA;
}
public void setBarB(String barB) {
this.barB = barB;
}
public String getBarA() {
return barA;
}
public String getBarB() {
return barB;
}
}
Representer representer = new Representer();
representer.addClassTag(Foo.class, tag.MAP);
DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
Yaml yaml = new Yaml(representer, options);
StringWriter writer = new StringWriter();
yaml.dump(foo, writer);
barA
barB
bar_a
bar_b
使用SnakeYAML的输出如下所示:
public class Foo {
private String barA;
private String barB;
public void setBarA(String barA) {
this.barA = barA;
}
public void setBarB(String barB) {
this.barB = barB;
}
public String getBarA() {
return barA;
}
public String getBarB() {
return barB;
}
}
Representer representer = new Representer();
representer.addClassTag(Foo.class, tag.MAP);
DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
Yaml yaml = new Yaml(representer, options);
StringWriter writer = new StringWriter();
yaml.dump(foo, writer);
barA
barB
bar_a
bar_b
但是,在输出中,我希望变量的命名约定如下所示:
public class Foo {
private String barA;
private String barB;
public void setBarA(String barA) {
this.barA = barA;
}
public void setBarB(String barB) {
this.barB = barB;
}
public String getBarA() {
return barA;
}
public String getBarB() {
return barB;
}
}
Representer representer = new Representer();
representer.addClassTag(Foo.class, tag.MAP);
DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
Yaml yaml = new Yaml(representer, options);
StringWriter writer = new StringWriter();
yaml.dump(foo, writer);
barA
barB
bar_a
bar_b
我如何使用SnakeYAML实现这一点?我想澄清一下,我不想更改Java变量的命名约定。我相信这可能是使用
TypeDescription
或某种序列化实现的,但我不确定具体如何实现这一点。正如我在回答另一个问题时提到的,由于以下原因,目前不可能实现。