如何在groovy中解析JSON时维护键的顺序



我试图解析一个包含很多键的大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())

请帮我把解析后修改的内容写回,以便写入新的文本文件

假设您有一个对象Fields,您要使用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"
}

最新更新