Ваша попытка:
String str = "[[u'abcd', u'12345'], [u'cmnln', u'12121'], [u'mnmnnkj', u'11212']]"
list2 = Eval.me(str)
Это не сработает, поскольку значение, которое вы передаете Eval.me(...)
, недопустимо Groovy код. В частности, такие выражения, как u'abcd'
и u'12345'
недопустимы.
Вам понадобится написать синтаксический анализатор или хотя бы какой-нибудь код синтаксического анализа, чтобы разбить это, и как это сделать, зависит от знания данных , Например, если вы знаете, что каждое из этих значений String
имеет префикс u
и u
никогда не появляется в данных, вы можете сделать что-то наивное, например:
String input = "[[u'abcd', u'12345'], [u'cmnln', u'12121'], [u'mnmnnkj', u'11212']]"
String processedInput = input.replaceAll 'u', ''
def result = Eval.me processedInput
println result
Если a u
может появиться в данных, тогда вам понадобится более сложное регулярное выражение.