java - JQuery Ajax 调用 : How to fetch JsonArray?

标签 java jquery json ajax web-services

我在尝试从 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/

相关文章:

java - 在不重复任何组合的情况下迭代未知大小的多维数组的所有组合的最佳方法是什么?

Java:读取文件输入内容并在找到某些线条图案序列时对其进行过滤

javascript - 使用 JQuery、Ajax 和 PHP 的登录处理程序

json - JSON 到 VBA 转换过程的对象所需错误

java - JScrollPane 和 JTextArea 滚动

java - 通过API创建Pentaho元数据域: Exception 'Properties ... not initialised!'

javascript - 从 Jquery Mobile 中的控件组中删除特定元素

javascript - 设置 div 容器的高度会禁用 div 内部的点击?

json - 如何验证我只从 JSON 响应中获得一个 key ?

javascript - 在 Blender 导入的网格中获取颜色以使用 Three.js 显示的问题