如何使用jsonSlurper.parseText在groovy中解析包含破折号的“807-000”?
lb3vh1jj1#
您正在生成以下字符串以进行解析:
[807-000]
我想你需要的是一个包含字符串的json数组:
["807-000"]
您可以自己生成该json:
def arr2 = "[" + arr.collect({ '"' + it + '"' }).join(",") + "]"
但是,既然可以这样做,为什么还要多此一举呢?
def arr2 = groovy.json.JsonOutput.toJson(arr)
ni65a41a2#
现在还不完全清楚你到底想做什么。parseText()正在等待json被输入。我建议几个选项来解析。
def text = jsonSlurper.parseText("""{ "key": "807-000" } """)
或者您的意思是破折号之前是键,破折号之后是值?如果是这样,您可以尝试执行以下操作:
def map = "807-000".split("-").toSpreadMap() map.each {row -> def parsedText = jsonSlurper.parseText("""{ "${row.key}": "${row.value}" } """) println(parsedText) }
输出为= [807:000]
7jmck4yq3#
如何使用jsonSlurper.parseText在groovy中解析包含破折号的“807-000”?我不确定问题到底是什么。我能想到的是,当键中有连字符时,您可能在使用Groovy属性访问来检索键的值时遇到了问题。您可以通过引用属性名称来实现这一点:
String jsonString = ''' {"807-000":"Eight O Seven"} ''' def slurper = new JsonSlurper() def json = slurper.parseText(jsonString) // quote the property name which // contains a hyphen... String description = json.'807-000' assert description == 'Eight O Seven'
3条答案
按热度按时间lb3vh1jj1#
您正在生成以下字符串以进行解析:
我想你需要的是一个包含字符串的json数组:
您可以自己生成该json:
但是,既然可以这样做,为什么还要多此一举呢?
ni65a41a2#
现在还不完全清楚你到底想做什么。parseText()正在等待json被输入。我建议几个选项来解析。
或者您的意思是破折号之前是键,破折号之后是值?如果是这样,您可以尝试执行以下操作:
输出为= [807:000]
7jmck4yq3#
如何使用jsonSlurper.parseText在groovy中解析包含破折号的“807-000”?
我不确定问题到底是什么。我能想到的是,当键中有连字符时,您可能在使用Groovy属性访问来检索键的值时遇到了问题。您可以通过引用属性名称来实现这一点: