我有一个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");
答案 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