【发布时间】:2020-08-10 17:22:09
【问题描述】:
我正在尝试使用他们的REST API (link) 获取有关我的Trello 板的信息并将其保存在 Java 对象中。我遵循了最初的步骤并运行了这个命令,我得到了我想要的所有信息:
curl https://api.trello.com/1/members/me/boards?fields=name,url&key={apiKey}&token={apiToken}
返回以下格式的数据:
[
{
"name": "Greatest Product Roadmap",
"id": "5b6893f01cb3228998cf629e",
"url": "https://trello.com/b/Fqd6NosI/greatest-product-roadmap"
},
{
"name": "Never ending Backlog",
"id": "5b689b3228998cf3f01c629e",
"url": "https://trello.com/b/pLu77kV7/neverending-backlog"
},
//....
{
我创建了一个Board 类
@JsonIgnoreProperties(ignoreUnknown = true)
public class Board {
private String name;
private String shortLink;
private String idBoardSource;
private String id;
private String url;
public Board() {
}
//getters, setters
}
在我的 servlet 中,我执行:
//Get the response
String command = "curl -X GET https://api.trello.com/1/members/me/boards?fields=name,url&key={apiKey}&token={apiToken}";
ProcessBuilder processBuilder = new ProcessBuilder(command.split(" "));
processBuilder.directory();
Process process = processBuilder.start();
InputStream inputStream = process.getInputStream();
//Convert the InputStream into String
String jsonString = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
//try to create an Board class
Board board = new ObjectMapper().readValue(jsonString, Board.class);
但是,我收到一个错误:
org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of gr.kotronis.trello.Board out of START_ARRAY token
我尝试并添加了@JsonIgnoreProperties(ignoreUnknown = true),但仍然出现错误。我搜索了有关此错误的类似问题,但没有找到解决方案。
响应数据的格式是正确的,所以我不明白为什么我会收到这个错误...
【问题讨论】:
-
需要将json数组反序列化为List或者数组。 stackoverflow.com/questions/6349421/…