Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析JSON对象数组_Java_Arrays_Json_Object_Parsing - Fatal编程技术网

Java 解析JSON对象数组

Java 解析JSON对象数组,java,arrays,json,object,parsing,Java,Arrays,Json,Object,Parsing,我对使用Jquery和Json非常陌生。我有一个servlet,它返回一个JSONObject数组(基本上是一个JSONArray对象) 我试图在JavaScript中解析这个数组,但在这里遇到了麻烦。 我有一个javascript变量“var result”,它从servlet获取结果,我正试图将其解析为结果[0]。例如,uniqueId可以获取从服务器发送的uniqueId的值。但这似乎不起作用 下面是JavaServlet代码片段,显示发送到javascript客户端的内容 protect

我对使用Jquery和Json非常陌生。我有一个servlet,它返回一个JSONObject数组(基本上是一个JSONArray对象)

我试图在JavaScript中解析这个数组,但在这里遇到了麻烦。 我有一个javascript变量“var result”,它从servlet获取结果,我正试图将其解析为结果[0]。例如,uniqueId可以获取从服务器发送的uniqueId的值。但这似乎不起作用

下面是JavaServlet代码片段,显示发送到javascript客户端的内容

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
                    JSONArray arrayObj = new JSONArray();
             List<Folder> children =getFolders(request,response);
             Iterator itr = children.iterator();
             while(itr.hasNext())
             {
                 Folder folder = (Folder) itr.next();
                 obj = new JSONObject();
                 obj.put("uniqueId", folder.getUniqueId());
                 obj.put("folderName", folder.getFolderName());
                 obj.put("size", folder.getSize());
                 obj.put("modified", folder.getModified());

                 arrayObj.add(obj);
             }
            out = response.getWriter();
            response.setContentType("application/json");
            out.println(arrayObj);           
} 
请告知如何解析结果

谢谢 Deepthi

您需要将设置为期望从服务器返回的数据类型:

$.ajax({
              dataType: 'json',
              url: 'getFolders',
              type: 'POST',
              data: 'uniqueID=' + uniqueID ,
              //console.log(data);
              success: function(result) {  
              //parse result
                    alert("JSON result "+ result[0].uniqueId);

              }//end success
        });

顺便说一句,您不应该返回JSON数组。默认的数组构造函数在javascript中是可重写的,因此返回的数组允许外部网站调用api并获取数据。感谢您的快速响应。现在我的问题是在我的servlet中,我正在迭代一个包含“文件夹”对象的列表。我正在将每个文件夹对象转换为JSON对象。因此,我将拥有多个JSON对象。如果我不使用任何JSON数组,如何将多个JSON对象发送到客户端。另一个问题是,如果我假设从服务器获取多个JSON对象。如何解析它并获取值。请建议我需要在Jquery ajax调用的Success函数中解析多个JSON对象。谢谢大家,我能够解决我的问题。是的,Jquery出于某种原因忽略了响应中的
“application/JSON”
内容类型,因此需要指定
数据类型。在我看来,这是一个bug(至少与它如何确认
“application/xml”
“text/html”
的内容类型不一致)。
$.ajax({
              dataType: 'json',
              url: 'getFolders',
              type: 'POST',
              data: 'uniqueID=' + uniqueID ,
              //console.log(data);
              success: function(result) {  
              //parse result
                    alert("JSON result "+ result[0].uniqueId);

              }//end success
        });