gpt4 book ai didi

javascript - 在 JavaScript 中提取从 Servlet 返回的 JSON

转载 作者:行者123 更新时间:2023-11-30 17:06:42 25 4
gpt4 key购买 nike

基本上,我正在尝试提取从 JavaScript 中的 servlet 返回的 JSON。我已经测试了我的 servlet 类,它确实返回了一些 JSON,所以我想我不需要发布该类的代码。这是我返回的 JSON 格式:

[{"mrtpopAmt":"7000","mrtpopX":"17854.99820","mrtpopY":"35056.35003"},{"mrtpopAmt":"6300","mrtpopX":"29798.58427","mrtpopY":"37036.56434"}]

在我的 JavaScript 中,我试图将 mrtpopAmt、mrtpopX 和 mrtpopY 作为一个对象提取。然后我会将所有对象添加到一个数组中:

function getAllMRTPop(time){
var jsonArray;
var Data = JSON.stringify({ time: time });
$.ajax({
url: "/TrackNYP/TrackNYPServlet?action=GetAllMrtPop&time="+ Data + "",
type: "GET",
data: Data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var parsed = JSON.parse(data.d);
console.log(data.d);
$.each(parsed, function (i, jsondata) {
var jsonObject;
jsonObject.put("mrtpopAmt", jsondata.mrtpopAmt);
jsonObject.put("mrtstationX", jsondata.mrtstationX);
jsonObject.put("mrtstationY", jsondata.mrtstationY);
alert(jsonObject);
jsonArray.push(jsonObject);
});;
},
error: function (request, state, errors) {
}
});
}

但是,我在这一行收到类似 Unexpected token: u 的错误消息:

var parsed = JSON.parse(data.d);

我的 servlet URL 包含两个参数,一个是 Action ,另一个是时间:

http://localhost:8080/TrackNYP/TrackNYPServlet?action=GetAllMrtPop&time=8:00

所以我想知道我是否通过在 url 中传递参数以及上面代码中的数据来正确传递参数?

请问是哪里出了问题?提前致谢。

编辑

所以我已经将我的 JavaScript 部分更新为:

function getAllMRTPop(time){
var jsonArray = [];
$.ajax({
url: "/TrackNYP/TrackNYPServlet?action=GetAllMrtPop&time=8:00",
type: "GET",
data: time,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
console.log(data);
//var parsed = JSON.parse(data.d);
$.each(data, function (i, jsondata) {
var jsonObject;
console.log(mrtpopAmt);
jsonObject.put("mrtpopAmt", jsondata.mrtpopAmt);
jsonObject.put("mrtstationX", jsondata.mrtstationX);
jsonObject.put("mrtstationY", jsondata.mrtstationY);
jsonArray.push(jsonObject);
});;
},
error: function (request, state, errors) {
}
});
}

我尝试打印出 mrtpopAmt,它确实返回了一些东西。但是有错误提示:

Cannot call method 'put' of undefined 

有什么想法吗?

最佳答案

通过指定 dataType: "json",jQuery 已经知道您将获得 JSON 响应,无需执行 var parsed = JSON.parse(data.d)

只是做:

var parsed = data.d

编辑:

function getAllMRTPop(time){
var jsonArray = [];
$.ajax({
url: "/TrackNYP/TrackNYPServlet?action=GetAllMrtPop&time=8:00",
type: "GET",
data: time,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
console.log(data);
$.each(data, function (i, jsondata) {
var jsonObject = {};
jsonObject.mrtpopAmt = jsondata.mrtpopAmt;
jsonObject.mrtstationX = jsondata.mrtstationX;
jsonObject.mrtstationY = jsondata.mrtstationY;
jsonArray.push(jsonObject);
});;
},
error: function (request, state, errors) {
}
});
}

关于javascript - 在 JavaScript 中提取从 Servlet 返回的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27852787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com