如何在groovy中解析JSON时保持键的顺序

时间:2015-07-25 15:20:02

标签: java json parsing groovy

我正在尝试解析一个包含大量密钥的大型JSON文件,然后在对10-12个密钥进行更改后,我将修改后的内容写回到新的文本文件中。

我面临的问题是键的顺序发生了变化,我必须保持键的顺序。

我使用以下代码来执行此操作

import groovy.json.JsonSlurper
import groovy.json.JsonBuilder

def inputFile = new File("C:\\input\\input.json")

def InputJSON = new JsonSlurper().parseText(inputFile.text)
...
InputJSON.key1 = 'a'
InputJSON.key2 = 'b'
...
new File("C:\\output\\output.txt").write(new JsonBuilder(InputJSON).toPrettyString())

请解析后,帮我回复修改后的内容,以便新文本文件。

1 个答案:

答案 0 :(得分:0)

假设您有一个对象使用groovy转换为json的字段

你通常会这样做

new JsonBuilder(obj).toString()

现在如果你想确保json中的键顺序是field2,field3,field4,field1那么你可以做

def listOfFields = [
   "field2",
    "field3",
    "field4",
    "field1"
]

Map map = new LinkedHashMap();

listOfFields.each{  
    map[it] = obj."${it}"
}

new JsonBuilder(obj).toString()

这将确保您的json

{   
    "field2": "val2",
    "field3": "val3",
    "field4": "val4",
    "field1": "val1"

}