Java 在JSTL页面上获取表上的JSON数据
因此,我使用amiiboapi来提取数据,并显示表中返回的内容。现在,我只是把这个系列放在桌子上,以确保它能工作,但它不能 这是我的桌子:Java 在JSTL页面上获取表上的JSON数据,java,json,api,servlets,jstl,Java,Json,Api,Servlets,Jstl,因此,我使用amiiboapi来提取数据,并显示表中返回的内容。现在,我只是把这个系列放在桌子上,以确保它能工作,但它不能 这是我的桌子: <table class="table table-striped table-hover table-sm"> <thead> <tr> <th class="col-sm-1" scope="col">#<
<table class="table table-striped table-hover table-sm">
<thead>
<tr>
<th class="col-sm-1" scope="col">#</th>
<th class="col-sm-11" scope="col">Amiibo</th>
</tr>
</thead>
<c:forEach var="amiibo" items="${amiibos}" varStatus="status">
<tr>
<th scope="row">${status.count}</th>
<td>${amiibo.amiiboSeries}</td>
</tr>
</c:forEach>
</table>
这是我得到的错误:
java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
有人知道我在提取这些数据时做错了什么吗?我认为api可以很好地访问,我认为我的问题在于如何显示它(可能是在我将其放入列表时)
--编辑--
这是我的输入类,用于获取用户输入
import java.io.Serializable;
public class Input implements Serializable {
private String amiibo;
public Input() {
this("");
}
public Input(String amiibo) {
this.amiibo = amiibo;
}
public String getAmiibo() {
return amiibo;
}
public void setAmiibo(String amiibo) {
this.amiibo = amiibo;
}
}
克里特包装器对象:
class AmiiboResponse {
private List<Amiibo> amiibo;
public List<Amiibo> getAmiibo() {
return amiibo;
}
public void setAmiibo(List<Amiibo> amiibo) {
this.amiibo = amiibo;
}
}
类阿米巴反应{
非公开名单amiibo;
公共列表getAmiibo(){
返回阿米波;
}
公共无效setAmiibo(列表amiibo){
this.amiibo=amiibo;
}
}
并以这种方式反序列化:
List<Amiibo> amiibos = gson.fromJson(json, AmiiboResponse.class).getAmiibo();
List amiibos=gson.fromJson(json,amiiboreresponse.class).getAmiibo();
您能否显示您在抛出异常时使用的JSON
有效负载?当JSON
从{
您不能使用列表
。对不起,我不知道您所说的json有效负载是什么意思?json字符串
看起来怎么样?以下是显示json外观的文档:谢谢!所以我想我已经有了类似于您建议的内容。我已经编辑了我的问题以添加有问题的类。@burgoyne,如果您的类对于发送到REST API
的输入,应使用类来反序列化REST API
的输出。在尝试解决方案时,我发现此错误:java.lang.IllegalStateException:应为BEGIN_数组,但在第1行第241列path$.amiibo[0]处为BEGIN_对象.release@burgoyne,这是因为在您的模型中有public String[]release;
但它应该是public Map release;
这是文档中的一个对象,所以您应该在这里使用Map
。做到了。非常感谢您的帮助!
class AmiiboResponse {
private List<Amiibo> amiibo;
public List<Amiibo> getAmiibo() {
return amiibo;
}
public void setAmiibo(List<Amiibo> amiibo) {
this.amiibo = amiibo;
}
}
List<Amiibo> amiibos = gson.fromJson(json, AmiiboResponse.class).getAmiibo();