从json.javax.JsonObject获取json密钥名称?

时间:2014-08-01 14:54:08

标签: java json

假设我有一个来自javax的名为jsonObject的JsonObject,它看起来像这样:{"key":"value"}

如何获取密钥名称key

我只找到像getJsonString这样的方法来获取键值value,但不能找到键本身的名称。

背景:

我有一个Json数组,它包含键值对。我想知道特定索引i上的密钥名称。

示例:

[{"key1":"value0"},{"key1":"value1"},{"key2","value2"}]

key1此处取得了成功,key2失败,必须进行检查。

1 个答案:

答案 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
}