我无法正确理解运行此代码时出现的错误:
InputStream is = this.getClass().getClassLoader().getResourceAsStream(filename);
String jsonTxt = IOUtils.toString(is);
JSONArray json = (JSONArray) JSONSerializer.toJSON(jsonTxt);
JSONObject metadatacontent = json.getJSONObject(0);
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(metadatacontent.toString(), MetadataContentBean.class.getClass());
Run Code Online (Sandbox Code Playgroud)
错误:
org.codehaus.jackson.map.JsonMappingException:不能在[来源反序列化java.lang.Class的实例进行START_OBJECT令牌:java.io.StringReader@e3b895; 行:1,柱:1]在org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:159)在org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:192)在有机.codehaus.jackson.map.deser.StdDeserializer $ ClassDeserializer.deserialize(StdDeserializer.java:439)在org.codehaus.jackson.map.deser.StdDeserializer $ ClassDeserializer.deserialize(StdDeserializer.java:421)在org.codehaus.jackson .map.ObjectMapper._readMapAndClose(ObjectMapper.java:1588)在org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1116)在com.path.parser.JSon.Parser(JSon.java:65)在COM.
这是什么意思??
也许如果我知道这一点,我可以找出我的错误.
ska*_*man 12
你的问题是最后一行:
MetadataContentBean.class.getClass()
Run Code Online (Sandbox Code Playgroud)
这意味着"让我获取ClassMetadataContentBean类的对象,然后获取该Class对象的Class对象"....如果你明白我的意思.所以你要求杰克逊将你的JSON反序列化到一个Class它不知道该怎么做的对象上.
这应该是公正的
MetadataContentBean.class
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37368 次 |
| 最近记录: |