Perl YAML :: Syck кодированная строка, как правильно декодировать в Java с помощью JYaml? - PullRequest
0 голосов
/ 11 сентября 2009

Использование beanstalkd и помещение задания в трубу / очередь, содержащую хэш, закодированный в YAML :: Syck (с $ YAML :: Syck :: ImplicitTyping = 1).

Мне нужна некоторая синтаксическая справка на стороне Java, чтобы узнать, как декодировать дескриптор этой строки, извлеченной из задания beanstalkd. Хэш Perl заканчивается тем, что кодируется как строка YAML, которая выглядит так:

--- NameFirst
--- Майк
--- NameLast
--- Смит
--- DOB
--- 07.07.2007

Эти записи YAML (как указано выше) обрабатываются только по одной за раз. Итак, учитывая эту строку выше, как в мире я могу заставить JYaml читать это и декодировать в класс объекта с помощью таких методов:

Customer.NameFirst
Customer.NameLast
Customer.DOB

Ответы [ 2 ]

3 голосов
/ 11 сентября 2009

Я подозреваю, что вы делаете Dump (% hash) там, где вы должны делать Dump (\% hash). Первый выводит независимый список чередующихся ключей и значений; последний сбрасывает хэш с каждым значением, связанным с ключом, например:

---
DOB: 07/07/2007
NameFirst: Mike
NameLast: Smith
0 голосов
/ 08 декабря 2009

Вы можете рассмотреть возможность перехода на SnakeYAML. Я также генерирую YAML из Perl через YAML :: Syck для использования Java. Я столкнулся с некоторыми проблемами взаимодействия с JYaml, когда YAML :: Syck генерировал действительный YAML, который JYaml не мог разобрать. После перехода на SnakeYAML единственными проблемами взаимодействия, которые у меня были, были ошибки в YAML :: Syck. Этот ответ содержит более подробную информацию о моем опыте со SnakeYAML .

...