Как разработчик tcl, начиная с groovy, я немного удивлен списком и поддержкой карт в groovy. Может быть, я что-то здесь упускаю.
Я привык преобразовывать строки, списки и массивы / карты в tcl на лету. В tcl что-то вроде
"['a':2,'b':4]".each {key, value -> println key + " " + value}
было бы возможно, где, как и в groovy, каждая команда проходит по каждому символу строки.
Это было бы большой проблемой, я мог бы легко использовать что-то вроде команды split или tokenize, но поскольку сериализованный список или карта не просто "a: 2, b: 4", это немного сложнее разобрать.
Похоже, что разработчики гриффонов используют библиотеку stringToMap (http://code.google.com/p/stringtomap/), но пример также не справляется с сериализованными картами.
Итак, мой вопрос сейчас: как лучше всего разобрать карту или список в groovy?
Cheers,
Ralf
PS: это отличный вопрос, но я пометил его граалями, потому что мне нужна эта функциональность для граалей, где я хотел бы передавать карты через URL
Обновление: Это все еще открытый вопрос для меня ... поэтому вот некоторые обновления для тех, у кого такая же проблема:
- когда вы превращаете карту в строку,
.toString()
приведет к чему-то, что не может быть превращено обратно в карту во всех случаях, но .inspect()
даст вам строку, которую можно вычислить обратно до карта!
- в Grails есть
.encodeAsJSON()
и JSON.parse(String)
- оба прекрасно работают, но я еще не проверил, что парсер будет делать с функциями JSON (возможная проблема безопасности)