簡體   English   中英

Groovy:JSON解析

[英]Groovy: JSON Parsing

看到一個有趣的問題,不確定這與解析器或它假設的解析方式有關。 任何幫助表示贊賞

import groovy.json.JsonSlurper

def dMatch = '''[{"match":{"keyId":"A-102161-application"}},{"match":{"keyId":"A-102162-application"}},{"match":{"keyId":"A-102163-application"}},{"match":{"keyId":"A-102164-application"}},{"match":{"keyId":"A-102165-application"}}]'''

println "T1:: List: " + dMatch

def parser = new JsonSlurper()
def exclude = parser.parseText(dMatch)
println "T2:: Obj: " + exclude.toString()

println "----------------------------------------------------"

Output:

T1:: List: [{"match":{"keyId":"A-102161-application"}},
            {"match":{"keyId":"A-102162-application"}},
            {"match":{"keyId":"A-102163-application"}},
            {"match":{"keyId":"A-102164-application"}},
            {"match":{"keyId":"A-102165-application"}}]
T2:: Obj: *[[match:[keyId:A-102161-application]], 
            [match:[keyId:A-102162-application]],  
            [match:[keyId:A-102163-application]],  
            [match:[keyId:A-102164-application]],  
            [match:[keyId:A-102165-application]]]*

解析后的 object 應該與字符串相同,但所有值都被轉換為 map 的數組列表。

知道為什么會這樣生成 object 嗎? 當它被發送到 camunda 時它會抱怨

org.camunda.bpm.engine.ProcessEngineException:無法在變量“排除”中序列化 object:groovy.json.internal.LazyMap

使用JsonSlurperClassic() - 它生成可序列化的標准HashMap

如果你想將 object 轉換回 json 使用 Json output.toJson(obj)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM