vKa*_*yap 5 java android json cakephp jackson
我收到以下从服务器生成的响应 cakephp
[
{
"id": "42389",
"start": "0000-00-00",
"end": "0000-00-00",
"event_id": null,
"trip_id": "5791",
"location_id": "231552",
"user_id": "105",
"users_attending": "0",
"user_local": "0",
"Trip": {
"name": "Asdas"
},
"Event": [],
"Location": {
"name": "South Melbourne"
}
},
{
"id": "42392",
"start": "0000-00-00",
"end": "0000-00-00",
"event_id": "1218",
"trip_id": "4772",
"location_id": "271505",
"user_id": "105",
"users_attending": "3",
"user_local": "50",
"Trip": {
"name": "trip by 1059200"
},
"Event": {
"title": "SampleEvent 454",
"id": "1218"
},
"Location": {
"name": "Houston"
}
},
.......
]
Run Code Online (Sandbox Code Playgroud)
问题是解析器需要Event对象,但如果它null接收空数组。
由于响应是由 自动生成的cakephp,因此必须在服务器端的很多地方进行更改。
Event如果属性为空数组,是否有任何简单的方法可以让 jackson 忽略属性?
编辑:
我试过有两个带有Event名称的属性:一个数组和另一个对象,但这也不起作用。
因为,我必须为许多对象处理这样的响应,所以我最终继续创建一个通用类,它将返回Deserializer特定的class.
这是我用过的
public class Deserializer<T> {
public JsonDeserializer<T> getDeserializer(final Class<T> cls) {
return new JsonDeserializer<T> (){
@Override
public T deserialize(JsonParser jp, DeserializationContext arg1) throws IOException, JsonProcessingException {
JsonNode node = jp.readValueAsTree();
if (node.isObject()) {
return new ObjectMapper().convertValue(node, cls);
}
return null;
}
};
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
2999 次 |
| 最近记录: |