我在尝试从Web服务获取数据时发现一个问题,该服务以JsonArray(com.google.gson.JsonArray)
的形式返回数据。
我收到undefined
中的数据时得到UI
。
在java
中,我低于exception
:
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);
}
});
答案 0 :(得分:0)
JsonArray
需要在list
中解析为java
,然后返回。然后效果很好。
ArrayList<Object> yourArray = new Gson().fromJson(jsonArrayObj, new TypeToken<List<Object>>(){}.getType());