groovy: преобразовать строку (которая является списком) в Groovy список - PullRequest
0 голосов
/ 01 апреля 2020
import groovy.json.JsonSlurper

def ver = "['a', 'b', 'c']"
def jsonSlurper = new JsonSlurper()
def ver_list = jsonSlurper.parseText(ver)
println ver_list

Это то, что я делаю. Я хочу перебрать ver_list. И кажется трудным найти решение для этого.

Это ошибка при печати ver_list:

Caught: groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

The current character read is ''' with an int value of 39
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 1
['a', 'b', 'c']
.^
groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

The current character read is ''' with an int value of 39
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 1
['a', 'b', 'c']

1 Ответ

2 голосов
/ 01 апреля 2020

действительные строки json должны быть заключены в двойные кавычки.

, поэтому измените в своем коде эту строку, и она должна работать:

def ver = '["a", "b", "c"]'

однако, если вам нужно анализировать не действительный json вы можете попробовать синтаксический анализатор LAX.

тогда даже следующая строка может быть проанализирована

import groovy.json.JsonSlurper
import groovy.json.JsonParserType

def ver = "[a, 'b', 001]"
def jsonSlurper = new JsonSlurper().setType( JsonParserType.LAX )
def ver_list = jsonSlurper.parseText(ver)
println ver_list
...