JsonMappingException没有单一的String构造函数/工厂方法Jackson
我正在尝试解析使用Spring build Jackson支持从我的Controller中的UI发送的JSON数据,这是我的代码
final Map entriesToUpdateMap = new ObjectMapper().readValue(entriesToUpdate, new TypeReference<Map>()
我的JSON字符串是
{"0":"{\"categoryCode\":\"shoes\",\"productCode\":\"300050253\",\"initialQty\":\"3\",\"leftoverQty\":\"0\",\"newQty\":\"3\"}", "1":"{\"categoryCode\":\"shoes\",\"productCode\":\"300050254\",\"initialQty\":\"3\",\"leftoverQty\":\"0\",\"newQty\":\"3\"}"}
我使用一些在线服务检查了JSON格式,它似乎有效,而tryin gto解析JSON数据我得到以下exception
org.codehaus.jackson.map.JsonMappingException: Can not instantiate value of type [simple type, class controllers.util.CartDataHelper] from JSON String; no single-String constructor/factory method
我的CartDataHelper
类包含带有无参数构造函数的productCode
, categoryCode
等的简单属性
正如评论中提到的,您的JSON包含Map
和NOT Map
:值是JSON字符串,而不是JSON对象。
理想情况下,您不会尝试将对象写为JSON字符串; 如果是这样,事情会奏效。
似乎在客户端,json作为字符串而不是对象发送。 那样在服务器端你就会收到一个字符串,而不是假装的CartDataHelper。
尝试发送JSON.parse(stringCartDataHelper)
。 它对我有同样的问题。