我在尝试从 Web 服务获取数据时发现了一个问题,该服务以 JsonArray(com.google.gson.JsonArray)
的形式返回数据。
当我在 UI
中接收数据时,我得到 undefined
。
在java
中,我得到以下异常
:
Caused by: org.codehaus.jackson.map.JsonMappingException: (was java.lang.IllegalStateException) (through reference chain: com.google.gson.JsonArray["asString"])
我尝试了各种方法,但似乎没有任何效果。请找到我尝试过的代码。
Java
@GET
@Path("/fetchData")
@Produces(MediaType.APPLICATION_JSON)
public JsonArray fetchData(@QueryParam("term") String id)
{
List<Object[]> listObj = new ArrayList<Object[]>();
JsonArray jsonArrayObj = new JsonArray();
try
{
listObj = manager.planningData(id.toString());
for (Object[] obj : listObj)
{
JsonObject jsonObj = new JsonObject();
if(obj[0]!=null)
{
jsonObj.addProperty("ID", obj[0].toString());
}
jsonArrayObj.add(jsonObj);
}
}
catch(Exception e)
{
System.out.println(e);
}
return jsonArrayObj;
}
JQuery
$.ajax({
type : 'GET',
url : contextPath+'/rest/fetchDataPlan/fetchData?value='+valueId+'',
dataType:'json',
data : {
term:valueId,
},
success : function(data) {
if (data)
{
console.log("test");
}
else
{
console.log("no work");
}
},
error : function(err) {
console.log("error occurred "+err.message);
}
});
最佳答案
JsonArray
需要在java
中解析成list
然后返回。然后就很好用了。
ArrayList<Object> yourArray = new Gson().fromJson(jsonArrayObj, new TypeToken<List<Object>>(){}.getType());
关于java - JQuery Ajax 调用 : How to fetch JsonArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56039779/