无法理解JsonMappingException

时间:2018-04-19 20:47:24

标签: java json mapping

运行以下行时:

Request<Map<String, Object>> requestMap = JsonUtils.fromJson(eventContext.getMessage().getPayloadAsString(), Request.class);

我得到了这个Java异常:

Root Exception stack trace:
org.codehaus.jackson.map.JsonMappingException: Can not instantiate value of type [simple type, class ***.objectmodel.Request] from JSON floating-point number; no one-double/Double-arg constructor/factory method

2 个答案:

答案 0 :(得分:1)

对我来说,您试图将 String (JSON)转换为Request,但是您没有指定要尝试解析的Request(通用参数)类型。

我会尝试将JSON提取到 Map 中,如下所示:

Map<String, Object> actual = JsonUtil.fromJson(encoded, new TypeReference<Map<String, Object>>(){});

一旦你收到一个JSON并希望反序列化它,我相信它有信息,你必须创建一个特定的实体来映射它,然后它会是这样的:

Map<String, YourEntity> actual = JsonUtil.fromJson(encoded, new TypeReference<Map<String, YourEntity>>(){});

有关此解决方案的更多详细信息,请参阅here

答案 1 :(得分:0)

我在调试时发现了问题。 JSON字符串实际上不是JSON(特别是一个IP地址字符串“192.168.1.1”。所以它不是目标类的反序列化映射问题(正如我原先假设的那样)。

寓言的道德:例外太复杂了。 “不是JSON字符串”就足够了。