Perl YAML :: Syck编码的字符串,如何使用JYaml在Java中正确解码?

时间:2009-09-11 07:27:58

标签: java perl yaml jyaml

使用beanstalkd并将作业放入包含YAML :: Syck编码的哈希的管/队列中(使用$ YAML :: Syck :: ImplicitTyping = 1)。

我需要Java端的一些语法帮助,关于如何解码处理从beanstalkd作业中提取的字符串。 Perl哈希最终被编码为YAML字符串,如下所示:

--- NameFirst
---迈克 --- NameLast
---史密斯 --- DOB
--- 2007年7月7日

这些YAML记录(如上所述)一次只能处理一个。所以,鉴于上面的字符串,我在世界上如何让JYaml读取它,并使用以下方法解码为对象类:

Customer.NameFirst
Customer.NameLast
Customer.DOB

2 个答案:

答案 0 :(得分:3)

我怀疑你正在做Dump(%hash)你应该做Dump(\%hash)。前者转储一个交替键和值的独立列表;后者转储散列,每个值与一个键相关联,如:

---
DOB: 07/07/2007
NameFirst: Mike
NameLast: Smith

答案 1 :(得分:0)

您可以考虑切换到SnakeYAML。我也通过YAML :: Syck从Perl生成YAML以供Java使用。我遇到了JYaml的一些互操作问题,其中YAML :: Syck生成了JYaml无法解析的有效YAML。由于切换到SnakeYAML,我遇到的唯一的互操作问题是YAML :: Syck中的错误。 This answer了解了experience with SnakeYAML的详细信息。