无法在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

org.json.JSONObject 类型的值无法转换为 JSONArray

JSONException:java.lang.String 类型的值无法转换为 JSONObject