Удалить повторное поле в JSON в Android - PullRequest
0 голосов
/ 22 января 2019

Я занимаюсь разработкой приложения для Android, мой сетевой клиент модернизирован, и я анализирую ответы сети с помощью Gson.

Рассмотрите этот JSON:

{
    "response": {
        "typeB": {
            "data": {
                "type": "typeB",
                "id": "226131",
                "username": "something"
            }
        },

        "typeA": {
            "data": {
                "type": "typeA",
                "id": "226131",
                "address": "something"

            }
        }
    }
}

Это поле данных является избыточным. Как я могу удалить эти данные, используя Gson? Я не хочу повторять данные в typeA.data.address, просто typeA.address

1 Ответ

0 голосов
/ 26 января 2019

Мое предположение относительно вопроса:

Я предполагаю, что вы пытаетесь удалить Response.Type.data.Address, потому что это избыточно в Response.Type или каким-либо другим способом.

Решение:

В этом я удаляю адрес из Type.Data.Я надеюсь, что мои предположения верны.

 public  String removeAddress(String json) {
    JsonParser jsonParser = new JsonParser();
    JsonObject root = jsonParser.parse(json).getAsJsonObject();
    root = root.get("response").getAsJsonObject();
    Set<Map.Entry<String, JsonElement>> objectEntrySet = root.entrySet();

    for (Map.Entry<String, JsonElement> object :
            objectEntrySet) {
        JsonObject type = object.getValue().getAsJsonObject();
        JsonObject data = type.get("data").getAsJsonObject();

        data.remove("address");
        type.add("data", data);
    }

    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    return gson.toJson(root);

}

Пожалуйста, скажите мне, если мое предположение неверно!Удачного кодирования :)

...