无法在groovy中拆分jsonobject中的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在groovy中拆分jsonobject中的值相关的知识,希望对你有一定的参考价值。
我是groovy的新手。我试图在groovy中分割json对象中的值,但我似乎无法找到解决方案。请在下面找到示例代码
def inputFile = new File("C:\graph.json")
def InputJSON = new JsonSlurper().parseFile(inputFile,'UTF-8')
InputJSON.each{println it}
def names = InputJSON.graph;
def name
for (int kk=0;kk<4;kk++)
{
name=names.JArray1[kk]
run.put(name.runid, name.rundetails);
println "test::"+name.runid+"--------------"+name.rundetails
}
graph.json
{
"graph": {
"JArray1": [
{
"runid": 1,
"rundetails":{
"01_Home":0.231,
"02_Login":0.561}
}
]
}
}
name.rundetails包含以下值
[01_Home:0.231, 02_Login:0.561]
我想拆分并将其添加为Hashmap中的键和值,如下面的格式
Key:01_Home Value:0.231
Key:02_Login Value:0.561
我怎么会这样做任何建议都会有所帮助。提前致谢。
答案
据我所知,你需要收藏如下:
[[Key:01_Home, Value:0.231], [Key:02_Login, Value:0.561]]
然后你可以这样做:
println InputJSON.graph
.JArray1
.rundetails
.collectEntries{it}
.collect{[Key: it.key, Value: it.value]}
另一答案
import groovy.json.*
def inputFile = new StringReader('''
{
"graph": {
"JArray1": [{
"runid": 1,
"rundetails": {
"01_Home": 0.231,
"02_Login": 0.561
}
}
]
}
}
''')
def json = new JsonSlurper().parse(inputFile)
json.graph.JArray1.each{run->
println "runid = ${run.runid}"
// at this point `run.rundetails` is a map like you want
println "details = ${run.rundetails}"
}
以上是关于无法在groovy中拆分jsonobject中的值的主要内容,如果未能解决你的问题,请参考以下文章
“JSONException:Java.lang.String 类型的值 <br 无法转换为 JSONObject”? [复制]
JSONException:Java.lang.String 类型的值 <?xml 无法转换为 JSONObject
org.json.JSONArray 类型的值无法转换为 JSONObject