Я пытаюсь сохранить карту 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?
- Есть ли способ создать строковое представление карты с соответствующими кавычками?