【问题标题】:Remove repeated field in json in android在android中删除json中的重复字段
【发布时间】:2019-06-16 02:36:18
【问题描述】:

我正在开发一个 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

【问题讨论】:

    标签: java android json serialization gson


    【解决方案1】:

    我对这个问题的假设:

    我假设您正在尝试删除 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);
    
    }
    

    如果我的假设是错误的,请告诉我!快乐编码:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      相关资源
      最近更新 更多