【发布时间】:2018-02-02 20:05:24
【问题描述】:
我有一个有趣的问题想要解决。这是在我解析来自我们与之交互的平台之一的响应时。响应会根据用户而变化。
对于用户 A,我有以下 JSON:
{
"userId": "AA001",
"AA001_Name": "Username",
"AA001_Email": "user@gmail.com",
"AA001_Phone": "000-000-0000"
}
对于用户 B,我有:
{
"userId" : "AA002",
"AA002_Name" : "Username",
"AA002_Email" : "user@gmail.com",
"AA002_Phone" : "000-000-0000"
}
现在,在反序列化时,我想将它们都映射到以下对象,忽略 json 附带的字段名称:
class User {
private String userId,
private String name,
private String email,
private String phone
}
很容易映射 userId,因为那也是 JSON 中的字段,但是自定义字段呢?
现在,我不能使用@JsonProperty,因为字段的名称会根据用户动态变化。
有什么办法可以做到吗? 请注意,我可能有几个这样的自定义对象,如部门、组织等,并且平台以这种方式返回数据,这意味着键附加了用户特定的信息。
感谢任何帮助。我对此非常困惑。
【问题讨论】:
-
您可能会检查 JsonParser 以解析对 JsonObject 的响应,然后使用您维护的一组键手动解析。 docs.oracle.com/javaee/7/api/javax/json/stream/JsonParser.html
标签: java json jackson deserialization objectmapper