Java 将JSON转换为对象抛出JsonMappingException;无法反序列化START_ARRAY token以外的类的实例;
我正在尝试使用Java 将JSON转换为对象抛出JsonMappingException;无法反序列化START_ARRAY token以外的类的实例;,java,json,rest,trello,Java,Json,Rest,Trello,我正在尝试使用RESTAPI()获取有关我的Trello板的信息,并将其保存在Java对象中。我按照最初的步骤操作并运行此命令,得到了我想要的所有信息: curl https://api.trello.com/1/members/me/boards?fields=name,url&key={apiKey}&token={apiToken} 以以下格式返回数据: [ { "name": "Greatest Product Roadmap", "id": "5b68
REST
API()获取有关我的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"
},
//....
{
我创建了一个板
类
@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数组反序列化为java数组或java列表。
您可以在这里找到答案。您需要将json数组取消序列化为列表或数组。