【发布时间】:2014-06-03 18:26:57
【问题描述】:
我正在接收 JSON 响应的 JSP 中进行 Ajax 调用。
运行alert('Ajax Response ' + respArr); 会出现以下屏幕:
Java 服务器端代码:
public void doGet(HttpServletRequest request, HttpServletResponse res) throws IOException, ServletException {
try {
String fromDate = request.getParameter("drFrom");
String toDate = request.getParameter("drTo");
JSONArray jsonArray = chartData.getCCSBJson(fromDate, toDate);
res.setContentType("application/json");
res.getWriter().write(jsonArray.toString());
}
JavaScript:
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if(xmlhttp.responseText != null) {
var respArr = xmlhttp.responseText;
var jsonData = eval("(" + respArr + ")");
alert('JSON Chart ' + jsonData); // The line from above
var obj = JSON.parse(xmlhttp.responseText);
alert('JSON Parse' + obj);
返回的 JSON:
[
{
"chart":{
"caption":"",
"exportDataFormattedVal":"1",
"numberPrefix":"",
"showexportdatamenuitem":"1",
"xAxisName":"Bureau usage",
"yAxisName":"count"
},
"data":[
{
"label":"SB AutoDecison",
"value":"0"
},
{
"label":"CC AutoDecison",
"value":"0"
},
{
"label":"CC Judgemental",
"value":"0"
},
{
"label":"SB Judgemental",
"value":"0"
}
]
}
]
警报结果:
alert('JSON Chart ' + jsonData) // JSON Chart[object Object]
alert('JSON Parse ' + obj); // JSON parse[object Object]
我想要的是解析对象并从内容中生成一个 Excel 工作表。
当我尝试循环时:
var jqueryData = jQuery.parseJSON(respArr);
var obj = JSON.parse(xmlhttp.responseText);
for (var i in obj) {
alert('For loop string' + obj[i]);
}
它会使用 JavaScript 代码引发大约 7 或 8 个警报
for (i = 0; i < 5; i++) {
alert(i + ' of respArr ' + respArr[i]);
}
在每个循环的迭代中给出一个接一个的 JSON 字母:[、{、"、c、h,等等。
我不能像respArr[0].data 或respArr[0].chart 那样只遍历JSON 吗?
【问题讨论】:
-
不明白是什么问题?
-
我删除了 jQuery 标记.. 但我现在看到了
jqueryData变量.. 即使您向我们展示的内容中实际上没有任何 jQuery,jqueryData也没有在任何地方定义.. 所以如果我删除 jQuery 标记是错误的,请将其添加回来。 -
尝试使用console.log代替alert,有助于快速调试
-
不要使用alert,使用console.log,它会显示对象。
-
帮我解析Json对象... respArr[0].chart说未定义..我只是尝试了多种解析JSon的方法.. jQuery没有问题..
标签: java javascript ajax json