Итерирование списка объектов json?

Я должен перебрать список объектов json («local_properties») и проверить в каждом объекте, «is_built_in» = false или нет. Как я должен это сделать. Я получаю ниже JSON в ответ на GET API.

{
  "id": 1,
  "local_properties": [
    {
      "id": 1000221,
      "name": "RSCD_DIR",
      "data_type": "String",
      "default_value_source": "SystemObject/local",
      "value": "/C/PROGRA~1//",
      "is_built_in": true,
      "is_deprecated": true
    },
    {
      "id": 1000221,
      "name": "RSCD_DIR",
      "data_type": "String",
      "default_value_source": "SystemObject/local",
      "value": "/C/PROGRA~1//",
      "is_built_in": false,
      "is_deprecated": true
    },
    {
      "id": 1000221,
      "name": "RSCD_DIR",
      "data_type": "String",
      "default_value_source": "SystemObject/local",
      "value": "/C/PROGRA/",
      "is_built_in": true,
      "is_deprecated": true
    }
  ]
}

Всего 1 ответ


Подумайте об удалении ответа, используя Джексона, и тогда вы сможете перебирать local_properties и выполнять заданное действие, когда is_built_in равен true. Следующий фрагмент демонстрирует один из способов достижения этого, предполагая, что вы сможете десериализовать свой json в JsonNode Jacksons.

String sampleJson = "{
" +
                "  "id": 1,
" +
                "  "local_properties": [
" +
                "    {
" +
                "      "id": 1000221,
" +
                "      "name": "RSCD_DIR",
" +
                "      "data_type": "String",
" +
                "      "default_value_source": "SystemObject/local",
" +
                "      "value": "/C/PROGRA~1/BMCSOF~1/BLADEL~1/rscd/",
" +
                "      "is_built_in": true,
" +
                "      "is_deprecated": true
" +
                "    },
" +
                "    {
" +
                "      "id": 1000221,
" +
                "      "name": "RSCD_DIR",
" +
                "      "data_type": "String",
" +
                "      "default_value_source": "SystemObject/local",
" +
                "      "value": "/C/PROGRA~1/BMCSOF~1/BLADEL~1/rscd/",
" +
                "      "is_built_in": false,
" +
                "      "is_deprecated": true
" +
                "    }]}";
        ObjectMapper mapper = new ObjectMapper();
        JsonNode json = mapper.readValue(sampleJson, JsonNode.class);
        json.get("local_properties").elements().forEachRemaining(node -> {
            if (node.get("is_built_in").asBoolean()) {
                //Do Something when is_built_in is true
            }
        });