我有一个具有这种结构的用户对象:
class User {
    private String id;
    private String name;
    private Map<String, Object> properties;
    // GETTERS & SETTERS
}
我有一个具有这种结构的 JSON 字符串:
{
    "user": {
        "id:"123456789",
        "name:"azerty",
        "emailHash":"123456789", // not used in User class
        "properties": {
            "p1":1,
            "p2":"test",
            "p3":[1, 2, 3, 4],
            "p4":{
               etc...
            }
        }
    }
}
Properties 的键是 String,Properties 的值可以是 String、int、Array、boolean、Map 等。
我尝试像这样用 Gson 反序列化这个 JSON 字符串:
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(jsonString);
JsonObject object = element.getAsJsonObject();
GsonBuilder builder = new GsonBuilder();
builder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
Gson gson = builder.create();
User user = (User) gson.fromJson(object.get("user"), new TypeToken<User>() {}.getType());
字段 'id' 和 'name' 已正确注入,但字段 'properties' 保持为空。
你知道我做错了什么吗?在此先感谢您的帮助!