2009-09-11 7 views
0

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

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

--- NameFirst
--- Майк
--- NameLast
--- Смит
--- DOB
--- 07/07/2007

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

Customer.NameFirst
Customer.NameLast
Customer.DOB

ответ

3

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

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

Да, я как раз собирался отредактировать свой первоначальный вопрос. Моя строка YAML теперь выглядит точно так же, как вы ее разместили. Теперь, когда я нахожусь на Java, и я беру данные с помощью beanstalkd client: // Захват данных задания byte [] dstBytes = job.getData(); // внутри temp - это именно то, что у вас есть выше String person = new String (dstBytes); Как бы мое определение класса и код JYaml выглядели так, чтобы взять строку «person» YAML и ответить на что-то вроде: System.out.println (Customer.NameFirst); ?? Благодарю. – 2009-09-11 08:27:53

+0

Dang it, извините за форматирование .. без предварительного просмотра в поле комментариев. – 2009-09-11 08:29:35

0

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