我试图从JSON中获取所有元素名称和值。 基本上,我将获得JSON响应,并需要将其与XML响应进行比较。我现在决定的方法是从JSON和XML获取所有元素名称和值,然后将它们存储在单独的列表中。最后,我将仅比较列表。
Q1。有没有更好的方法来做我正在计划的事情? (将JSON与XML进行比较)
如果没有, 我这样做时遇到了一些麻烦。我的JSON是一个嵌套的JSON,我需要获取所有元素及其名称的值。但是,使用JSON,我只能获得最外层的元素。我需要这个fetch是动态的,因为我想稍后重复使用相同的代码进行其他类似的比较
$dt = theme_get_date();
if (!empty($dt)) {
(Using a sample XML I found in another answer on StackOverflow)
import org.json.JSONException;
import org.json.JSONObject;
import org.json.XML;
import groovy.json.JsonBuilder;
import java. util.ArrayList;
import java. util.Iterator
import groovy.json.JsonSlurper
xml = """
{
"master": {
"node": "xyz",
"files": [{"type": "modified", "file": "test.txt"}]
},
"testbranch2": {
"node": "abc",
"files": [{"type": "modified", "file": "test.txt"}]
},
"testbranch": {
"node": "xxx",
"files": [{"type": "modified", "file": "test.txt"}],
}
}
"""
def json = new JSONObject(xml);
def test = new JsonSlurper().parseText(json.toString())
log.info test.keySet()
log.info test.Outer.keySet()
只设法获取最外面的密钥,而不是全部。
提前致谢!
答案 0 :(得分:0)
您可以使用jackson将xml转换为json / JsonNode,然后轻松地与您想要的任何级别进行比较。
请参阅下面的链接,了解如何将xml转换为json。 How to convert XML to JSON using only Jackson?