【发布时间】:2018-07-19 22:58:42
【问题描述】:
现在我正在尝试解析这种格式的传入 JSON:
{
<email>: {
<name>: <string>, # setting value
...
},
...
}
例如:
{
"aaa@example.com": {
"statement": true
},
"bbb@example.com": {
"statement": false
}
}
我也不知道这个 JSON 中有多少电子邮件。我有点困惑,您如何在不知道其属性名称的情况下收到杰克逊的所有这些电子邮件,我想知道这是否可能。
到目前为止,这是我的代码:
public class GDPRConsent extends Model {
@JsonIgnore
private static final String GDPR_CONSENT = "gdprConsent";
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
@JsonProperty
private ArrayList<String> emails;
@JsonProperty("serviceDataCollection")
private String dataCollection;
@JsonProperty("serviceDataCollection")
public String getDataCollectionConsent() {
return dataCollection;
}
@JsonProperty
public ArrayList<String> getEmails() {
return emails;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@Override
public String getId() {
return GDPR_CONSENT;
}
}
这是我的解析器:
public static <T> T parseObject(String sourceJson, Class<T> classToParse) {
T parsedObject = null;
try {
parsedObject = sObjectMapper.readValue(sourceJson, classToParse);
} catch (JsonParseException e) {
LogUtils.d(LOG_TAG, "parseObject JsonParseException: " + e.toString());
} catch (JsonMappingException e) {
LogUtils.d(LOG_TAG, "parseObject JsonMappingException: " + e.toString());
} catch (IOException e) {
LogUtils.d(LOG_TAG, "parseObject IOException: " + e.toString());
}
return parsedObject;
}
尽管我知道 JSON 正在传入,但我目前返回的结果为空。
【问题讨论】:
-
是否记录了任何异常?