как разработчик 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: это вопрос groovy, но я привязал его к grails, потому что мне нужна эта функция для grails, где я хотел бы передавать карты через URL
Обновление:. Это все еще открытый вопрос для меня... так вот некоторые обновления для тех, у кого такая же проблема:
- когда вы превращаете карту в строку, a
.toString()
приведет к чему-то, что во всех случаях не может быть возвращено в карту, но.inspect()
предоставит вам строку, которая может быть оценена обратно карту! - в Grails существует
.encodeAsJSON()
иJSON.parse(String)
- оба работают отлично, но я еще не проверил, что будет делать синтаксический анализатор с функциями JSON (возможная проблема безопасности).