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