如何从JSON对象以Java的String数组形式获取所有键

时间:2018-10-15 10:42:50

标签: java json


我有一个从.json文件中创建的JSON对象,该文件看起来像follownig:

{
  "key1": {
    "key2": "value2",
    "key3": "value3",
  }
}

使用以下方法生成JSON对象:

JSONObject newUserJSON = new JSONObject(content);

我想做的是生成一个String数组,其中包含现有JSONObject的所有键,以便于访问它们。

3 个答案:

答案 0 :(得分:2)

JSONObject实现了Map接口,因此您可以使用与Map相同的方式来生成键列表。特别是,您可以使用.keySet().entrySet()方法。

例如(改编自here):

JSONObject jsonObj = ...;
List<String> l = new ArrayList<String>(jsonObj.keySet());

答案 1 :(得分:1)

         You could iterate through the keys.
          JSONObject newUserJSON = new JSONObject(content);
          ArrayList<String> keys = new ArrayList<>();
          String key;

          for (Iterator<String> it = newUserJSON.keys(); it.hasNext(); ) {
             key = it.next();
             keys.add(key);
           }
      And also you need to take care of nested json Object for each key.

答案 2 :(得分:1)

这个问题的答案已经在另一个SO线程中提供:Convert string to JSON array

这相当于您的用例:

FreeIPA