假设我有一个来自javax的名为jsonObject的JsonObject,它看起来像这样:{"key":"value"}
如何获取密钥名称key
?
我只找到像getJsonString
这样的方法来获取键值value
,但不能找到键本身的名称。
背景:
我有一个Json数组,它包含键值对。我想知道特定索引i
上的密钥名称。
示例:
[{"key1":"value0"},{"key1":"value1"},{"key2","value2"}]
key1
此处取得了成功,key2
失败,必须进行检查。
答案 0 :(得分:2)
JsonObject
实施Map<String, JsonValue>
。您可以致电jsonObject.keySet()
来访问密钥,或致电jsonObject.entrySet()
以获取对象的完整视图,包括密钥和值。
for (String key: jsonObject.keySet()) {
System.out.println(key);
}
在您描述的问题的上下文中,听起来您需要验证每个数组元素是否包含只有一个键值对的对象。也许是这样的:
Set<Map.Entry<String, JsonValue>> kvPairs = jsonObject.entrySet();
if (kvPairs.size() == 1) {
for (Map.Entry<String, JsonValue> kvPair: kvPairs) {
if (kvPair.getKey().equals("key1")) {
// success
} else {
// error handling
}
}
} else {
// error handling
}