Я пытаюсь сохранить карту groovy в файле. Моя текущая попытка состоит в том, чтобы написать строковое представление, а затем прочитать его обратно и вызвать evaluate
на нем, чтобы воссоздать карту, когда я снова смогу ее использовать.
Проблема, с которой я сталкиваюсь, заключается в том, что метод toString()
карты удаляет жизненно важные цитаты из значений элементов. Когда мои оценки кодов оцениваются, он жалуется на неизвестный идентификатор.
Этот код демонстрирует проблему:
m = [a: 123, b: 'test']
print "orig: $m\n"
s = m.toString()
print " str: $s\n"
m2 = evaluate(s)
print " new: ${m2}\n"
Первые два оператора печати почти работают - но кавычки вокруг значения для ключа b
исчезли. Вместо показа [a: 123, b: 'test']
он показывает [a: 123, b: test]
.
На этом этапе нанесен урон. Вызов evaluate
дросселируется, когда он пытается оценить test
как идентификатор, а не строку.
Итак, мои конкретные вопросы:
- Есть ли лучший способ сериализации/де-сериализации карт в Groovy?
- Есть ли способ создать строковое представление карты с соответствующими кавычками?