我对使用Jquery和Json非常陌生.我有一个servlet,它返回JSONObject的数组(基本上是JSONArray对象).
我试图在JavaScript中解析此数组,并且在这里遇到麻烦.
我有一个JavaScript变量“ var result”,它从servlet获取结果,并且我试图将其解析为result [0] .uniqueId,例如,以获取从服务器发送的uniqueId的值.但这似乎不起作用.
以下是Java Servlet代码段,以显示发送到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);
}
这是jquery代码片段
$.ajax({
url: 'getFolders',
type: 'POST',
data: 'uniqueID=' + uniqueID ,
//console.log(data);
success: function(result) {
//parse result
alert("JSON result "+ result[0].uniqueId);
}//end success
});
请建议如何解析结果.
谢谢
迪皮
解决方法:
您需要将dataType option设置为期望从服务器返回的数据类型:
$.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
});