如何使用Jackson序列化和反序列化对象列表

时间:2019-06-11 04:48:22

标签: java json serialization jackson json-deserialization

反序列化对象数组时遇到错误。

ans int以下表达式是List<Restaurant>类型

String json = obj.writeValueAsString(ans);

我在下面的行中出现错误

List<Restaurant> all= Arrays.asList(obj.readValue(reslistjson,Restaurant[].class));

错误- 无法从START_OBJECT令牌中反序列化com.crio.qeats.dto.Restaurant[]的实例 在[来源:(String)“ {” restaurantId“:” 12“,” name“:” A2B“,” city“:”电子城市“,” imageUrl“:” www.google.com“,” latitude“: 20.015,“经度”:30.015,“ opensAt”:“ 18:00”,“ closesAt”:“ 23:00”,“ attributes”:[“ Tamil”,“ South Indian”]}“ ;;行:1,列:1]

1 个答案:

答案 0 :(得分:1)

您的示例中的

JSON输入是对象而不是数组。 对于您的JSON数据,这将起作用:

List<Restaurant> all= Arrays.asList(objectMapper.readValue(json,Restaurant.class));

像这样的JSON是一个对象数组,您的原始代码可以使用:

String json = "[{..data1 goes here....}, {..data2 goes here....}]";
List<Restaurant> all= Arrays.asList(objectMapper.readValue(json,Restaurant[].class));