Сериализация заводной карты в строку с кавычками

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

Ответы на вопрос(2)

Ваш ответ на вопрос