【问题标题】:Convert JSON to Object throws JsonMappingException "Can not deserialize instance of class out of START_ARRAY token"将 JSON 转换为对象抛出 JsonMappingException “无法反序列化类实例出 START_ARRAY 令牌”
【发布时间】: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),但仍然出现错误。我搜索了有关此错误的类似问题,但没有找到解决方案。 响应数据的格式是正确的,所以我不明白为什么我会收到这个错误...

【问题讨论】:

标签: java json rest trello


【解决方案1】:

问题是您需要将 JSON 数组反序列化为 java 数组或 java List。 在这里你可以找到答案How to use Jackson to deserialise an array of objects

【讨论】:

    猜你喜欢
    • 2017-10-10
    • 2015-01-04
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    相关资源
    最近更新 更多