Путь Json получает все первые атрибуты

#java #jsonpath #jsonparser

Вопрос:

У меня ниже json, я пытаюсь извлечь 1-е атрибуты из каждого узла, используя JSONPath.

  {   "data": {
        "unpredictable_name_1": {
          "inner_data": [
            {
              "wanted_data": "something1",
              "other_data": 1000
            },
            {
              "wanted_data": "something2",
              "other_data": 1001
            }
          ],
          "something_else_1": "some_data"
        },
        "unpredictable_name_2": {
          "inner_data": [
            {
              "wanted_data": "something1",
              "other_data": 1000
            },
            {
              "wanted_data": "something2",
              "other_data": 1001
            }
          ]
        }   } }
 

Я хочу извлечь ниже :

 {
    unpredictable_name_1, 
    unpredictable_name_2
}
 

Я использую путь jway-json. Пожалуйста, помогите мне с выражением JSONPath.

Комментарии:

1. В не уверен насчет конкретной библиотеки, но путь JSON не поддерживал получение ключей, только значений.

Ответ №1:

Этот код помог мне получить только все атрибуты json —

 JsonParser parser = new JsonParser();
      JsonElement element = parser.parse(jsonStr);
      JsonObject obj = element.getAsJsonObject();
      Set<Map.Entry<String, JsonElement>> entries = obj.entrySet();
      for(Map.Entry<String, JsonElement> entry: entries) {
         System.out.println(entry.getKey());
      }
 

Благодаря учебным пособиям Пойнт