如何创建 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 的那部分。
对不起,我什至无法很好地表达这个问题,但就这样吧。 我收到这样的 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 的那部分。