【发布时间】:2015-07-25 15:20:02
【问题描述】:
我正在尝试解析一个包含很多键的大型 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())
请帮我把解析后修改的内容写回新的文本文件。
【问题讨论】:
-
如果任何语言的任何代码依赖于 JSON 对象的键的顺序,那么该代码应该是固定的,因为对象的键不应该具有任何特定的顺序。所以,简而言之,你不应该关心键的顺序。
-
@JBNizet 我遇到了同样的建议,但在我的情况下,我需要将输入 json 文件复制到 10-14 个不同的文本文件中,并在每个文件中更改一些具有不同值的键,以便一个可以很容易地观察到变化。它与QA过程自动化相关的代码无关。
-
您需要将其解析为 JSON 还是可以使用字符串操作并直接进行更改?不确定
toPrettyString()是否会导致问题。你可以试试toString()吗? -
对于qa,他们不能将json加载到hashmap中(也没有顺序)并比较地图吗?