Jackson Json List里面的对象

时间:2017-05-15 02:29:45

标签: java json jackson

我很难使用Jackson将Json String转换为java中的Object。

模型

public class MyList {    
   public List<MyObj> ads;
}

public class MyObj {    
   public String id_ad;
}

数据:

String con = "{\"ads\":[{\"id_ad\":\"20439\"}, {\"id_ad\":\"20449\"}]";

检索代码:

ObjectMapper objectMapper = new ObjectMapper();
MyList annonces = objectMapper.readValue(con, MyList.class);

错误:

Erreur dans getAllAds: com.fasterxml.jackson.core.io.JsonEOFException: 
Unexpected end-of-input: expected close marker for Object (start marker at [Source: {"ads":[{"id_ad":"20439"}, {"id_ad":"20449"}]; line: 1, column: 1])
 at [Source: {"ads":[{"id_ad":"20439"}, {"id_ad":"20449"}]; line: 1, column: 91]

问题:

  1. 出了什么问题?

  2. 我是否需要杰克逊的getter / setter或公共成员才能工作 细

1 个答案:

答案 0 :(得分:1)

您的JSON不正确,最后缺少一个结束的大括号(})。

更改自:

String con = "{\"ads\":[{\"id_ad\":\"20439\"}, {\"id_ad\":\"20449\"}]";

为:

String con = "{\"ads\":[{\"id_ad\":\"20439\"}, {\"id_ad\":\"20449\"}]}";