给出以下JSON对象
{
"id": 5,
"data: { ... }
}
是否可以将此映射到以下POJO?
class MyEntity {
int id;
Map<String, Object> data;
}
因为我想让数据对象保持开放状态。这甚至是可能的,或者更好的方法是什么?我在Android上这样做。
答案 0 :(得分:0)
我对Android应用程序一无所知,但您可以轻松地使用Gson库实现它。
您帖子中使用的JSON无效。这可能是一个错字。请在JSONLint - The JSON Validator
只需使用Gson#fromJson(String, Class)方法将JSON字符串转换为传递类类型的对象。
请记住,实例成员的名称也必须与JSON字符串中定义的完全相同(区分大小写)。详细了解JSON Field Naming
使用GsonBuilder#setPrettyPrinting()配置Gson输出适合页面进行漂亮打印的Json。
示例代码:
String json = "{\"id\": 5,\"data\": {}}";
MyEntity myEntity = new Gson().fromJson(json, MyEntity.class);
String prettyJsonString = new GsonBuilder().setPrettyPrinting().create().toJson(myEntity);
System.out.println(prettyJsonString);
输出:
{
"id": 5,
"data": {}
}