从JSON中提取特定元素

时间:2015-08-28 14:23:33

标签: java json

我有一个JSON作为folows

    {
    "Root1": {
        "Result": {
            "ID": "200",
            "Text": "OK"
        }
    }
}

有什么方法可以提取" ID"直接到变量而不遍历根元素,即" Root1"。因为每次运行应用程序时根元素名称都会更改,例如" Root2"," Root3"。

以下是我尝试使用" Root1"提取ID的代码。和"结果"元件

JSONObject jsonObject = new JSONObject("{\"Root1\": {\"Result\": {\"ID\": \"200\",\"Text\": \"OK\"}}}");
String element = jsonObject.getJSONObject("Root1").getJSONObject("Result").getString("ID");

2 个答案:

答案 0 :(得分:4)

只要json的结构始终一致,您就可以从根对象中获取所有密钥,并使用找到的第一个密钥来访问ID:

JSONObject jsonObject = new JSONObject("{\"Root1\": {\"Result\": {\"ID\": \"200\",\"Text\": \"OK\"}}}");
String rootKey = (String)jsonObject.keys().next();
String element = jsonObject.getJSONObject(rootKey).getJSONObject("Result").getString("ID");

答案 1 :(得分:0)

可能是你可以使用lambda表达式查询你的json数据。有一个类org.json.JSONarray使用它的getvalueas方法并在这个方法流(你的lambda).filter(你的lambda).map(你的lambda)中)可以解决你的问题。

THX