Groovy JsonSlurper 和嵌套映射
Groovy JsonSlurper and nested maps
我有一个 returns 完全嵌套 JSON 的方法,例如:
[[fizz: buzz, foos: [[count: 4, flim: flam], [count: 6, flim: flume]]]]
当我尝试使用 JsonSlurper
将此 JSON 吞入 def result
时,出现异常:
// json == “[[fizz: buzz, foos: [[count: 4, flim: flam], [count: 6, flim: flume]]]]"
String json = getJSON()
JsonSlurper slurper = new JsonSlurper()
def result = slurper.parseText(json)
在 parseText
执行时产生异常抛出:
Caught: groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object
知道修复方法是什么吗?
我认为您正试图将 Groovy 的地图符号用作 JSON。 JSON 对地图使用 curlies,像这样
import groovy.json.*
def obj = [["fizz": "buzz", "foos": [["count": 4, "flim": "flam"], ["count": 6, "flim": "flume"]]]]
def json = JsonOutput.toJson(obj)
assert json == '''[{"fizz":"buzz","foos":[{"count":4,"flim":"flam"},{"count":6,"flim":"flume"}]}]'''
def result = new JsonSlurper().parseText(json)
我有一个 returns 完全嵌套 JSON 的方法,例如:
[[fizz: buzz, foos: [[count: 4, flim: flam], [count: 6, flim: flume]]]]
当我尝试使用 JsonSlurper
将此 JSON 吞入 def result
时,出现异常:
// json == “[[fizz: buzz, foos: [[count: 4, flim: flam], [count: 6, flim: flume]]]]"
String json = getJSON()
JsonSlurper slurper = new JsonSlurper()
def result = slurper.parseText(json)
在 parseText
执行时产生异常抛出:
Caught: groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object
知道修复方法是什么吗?
我认为您正试图将 Groovy 的地图符号用作 JSON。 JSON 对地图使用 curlies,像这样
import groovy.json.*
def obj = [["fizz": "buzz", "foos": [["count": 4, "flim": "flam"], ["count": 6, "flim": "flume"]]]]
def json = JsonOutput.toJson(obj)
assert json == '''[{"fizz":"buzz","foos":[{"count":4,"flim":"flam"},{"count":6,"flim":"flume"}]}]'''
def result = new JsonSlurper().parseText(json)