2012-06-26 45 views
2

因此,無論我回去告訴某人他們應該修復他們的JSON,或者我需要找出我做錯了什麼。這裏是JSON,注意參數發生三次:解析時重複鍵名丟失信息的JSON

String j= '''{ 
    "jobname" : "test", 
    "parameters" : { 
    "parameter": {"name":"maxErrors", "value":"0"}, 
    "parameter": {"name":"case", "value":"lower"}, 
    "parameter": {"name":"mapTable", "value":"1"} 
    } 
} ''' 

,我試圖讓每名&值。我的代碼

def doc = new JsonSlurper().parseText(j) 
def doc1 = doc.entrySet() as List 
def doc2 = doc.parameters.entrySet() as List 
println "doc1.size===>"+doc1.size() 
println "doc1===>"+doc1 
println "doc2.size===>"+doc2.size() 
println "doc2===>"+doc2 

而且我的結果:

doc1.size===>2 
doc1===>[jobname=test, parameters={parameter={name=mapTable, value=1}}] 
doc2.size===>1 
doc2===>[parameter={name=mapTable, value=1}] 

爲什麼我只得到一個參數?另外兩個在哪裏?它看起來像JSON只保留一個參數並丟棄其他的。

回答

5

JSON格式不正確。在同一層次結構中不應該有重複鍵,否則它們將相互覆蓋。

它應該是一組參數。

這樣,

String j= '''{ 
"jobname" : "test", 
"parameters" : [ 
{"name":"maxErrors", "value":"0"}, 
{"name":"case", "value":"lower"}, 
{"name":"mapTable", "value":"1"} 
] 
} 
+0

好。這是我認爲會更好的格式,這是我們將使用的格式。精美的分析。 – rtfminc