如何创建 POJO class 以使用动态键名进行改造

How to create POJO class for retrofit with dynamic keys names

对不起,我什至无法很好地表达这个问题,但就这样吧。 我收到这样的 JSON 响应:

{
    "results": {
        "b2bc01": [{
            "message": "Successfully created",
            "_id": "596c8b25ce2350e41600002f",
            "status": "Success",
            "code": 200
        }],
        "b2bc02": [{
            "message": "Successfully created",
            "_id": "596c8b25ce2350e416000030",
            "status": "Success",
            "code": 200
        }]
        .
        .
        .
        "b2bc0n":[{
            "message": "Successfully created",
            "_id": "596c8b25ce2350e416000030",
            "status": "Success",
            "code": 200
            }]
    }
}

如何为这种 JSON 创建 POJO class。我在 jsonschema2pojo 中尝试过,但我觉得这不是一个好结果。 请帮忙。提前致谢

您的 POJO 文件

class MyPojo {
    HashMap<String, ArrayList<MyModel>> results;

    class MyModel {
        String message;
        String _id;
        String status;
        int code;
    }

您只能将 pojo 用于此数据:

[{
            "message": "Successfully created",
            "_id": "596c8b25ce2350e41600002f",
            "status": "Success",
            "code": 200
        }]

如果你使用 retrofit 2 和 gson,我建议你使用接口 JsonDeserializer

使用 .registerTypeAdapter()

例子

Gson gson = new GsonBuilder()
                            .excludeFieldsWithoutExposeAnnotation()
                            .registerTypeAdapter(GpcProductDetail.class, new GpcProductDeserializer())
                            .create();

并手动解析 json 的那部分。