【发布时间】:2014-03-13 19:50:12
【问题描述】:
我正在尝试将 Json 映射到 POJO,但我遇到了这个异常:
这是我的代码:
ObjectMapper mapper = new ObjectMapper();
try {
InputStream is = getActivity().getAssets().open("user.json");
List<MessageCenterResponse> mcr = (List<MessageCenterResponse>) mapper.readValue(content, MessageCenterResponse.class);
System.out.println(mcr);
}
catch (IOException ex) {
ex.printStackTrace();
}
我收到以下异常:
org.codehaus.jackson.JsonParseException: Unexpected character ('a' (code 97)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: java.io.StringReader@41e86930; line: 1, column: 2]
是否与类型问题有关?
【问题讨论】:
-
你认为
is.toString();做了什么,你为什么这么认为? -
对不起,我忘了把它拿掉,但是当我处理输入流本身时,我得到了这个:org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of MessageCenterResponse out of START_ARRAY token at [来源:android.content.res.AssetManager$AssetInputStream@41e83dc8;行:1,列:1]
-
你现在为什么要去掉类型标记?
-
即使在添加类型令牌后,我仍然无法从 START_ARRAY 令牌中反序列化 MessageCenterResponse 实例
-
向我们展示您是如何使用它的。应该是
TypeReference<List<MessageCenterResponse>>。