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