YAML合并单个序列并使用SnakeYAML JAVA反序列化
我试图在用JAVA反序列化SnakeYAML之后,将序列值与YAML合并到一起 我期待这一结果:YAML合并单个序列并使用SnakeYAML JAVA反序列化,java,yaml,snakeyaml,Java,Yaml,Snakeyaml,我试图在用JAVA反序列化SnakeYAML之后,将序列值与YAML合并到一起 我期待这一结果: { "root": { "seq4": [ "001", "002", "003" ], "seq3": [ "001", "002", "003" ], "seq2": [ "001", "002" ], "seq1": [
{
"root": {
"seq4": [
"001",
"002",
"003"
],
"seq3": [
"001",
"002",
"003"
],
"seq2": [
"001",
"002"
],
"seq1": [
"001",
"002"
]
}
}
但对于我来说,这个YAML示例不可能做到这一点:
root:
seq1: &seq1
- '001' #first
- '002' #secod
seq2: *seq1
seq3: &seq3
*seq1
- '003' #third
seq4: *seq3
此示例返回以下消息:
在分析块映射时
在“”第2行第3列中:
序号1:&1
^
应为,但找到“”
在“”第7行第5列中:
*主播1
^
此外,我还探讨了此YAML定义,但其返回错误为:
root:
seq1: &anch1
- '001' #first
- '002' #secod
seq2: *anch1
seq3: &anch2
<<: *anch1
- '003' #third
seq4: *anch2
根目录:
序号1:&1
-“001”首先
-“002”秒
序号2:*1
序号3:&2
找到此:。所以你的方案是不可能的
另外,请看有关合并YAML阵列的问题:
解决方法是为值指定唯一键,如下所示:
root:
seq1: &anch1
1: '001' #first
2: '002' #secod
seq2: *anch1
seq3: &anch2
<<: *anch1
3: '003' #third
seq4: *anch2
找到此:。所以你的方案是不可能的
另外,请看有关合并YAML阵列的问题:
解决方法是为值指定唯一键,如下所示:
root:
seq1: &anch1
1: '001' #first
2: '002' #secod
seq2: *anch1
seq3: &anch2
<<: *anch1
3: '003' #third
seq4: *anch2
在YAML中,没有语言独立的序列元素,就像映射没有语言独立的序列元素一样
其中一个原因是,您仍然可以使用merge键(),在YAML中,没有语言独立的序列元素,就像映射的语言独立一样
其中一个原因是,您仍然可以使用merge键(谢谢您的快速响应。但是我不喜欢将数组合并为复杂类型。谢谢您的快速响应。但是我不喜欢将数组合并为复杂类型。
root:
seq1: &seq1
- '001' #first
- '002' #secod
seq2: *seq1
seq3: !CombineSequences &seq3
- *seq1
- ['003'] #third
seq4: *seq3