我有一个JSON响应,使用JavascriptSerializer Class从我的C#WebMethod格式化。我目前从查询中获得以下JSON:
{"d":"[{\"Lat\":\"51.85036\",\"Long\":\"-8.48901\"},{\"Lat\":\"51.89857\",\"Long\":\"-8.47229\"}]"}
我在下面的代码中遇到了问题,我希望有人可能会对此有所了解。我似乎无法从返回给我的值中获取信息。理想情况下,我希望能够读回返回给我的每一行的Lat和Long值。
以下是我目前的情况:
$.ajax({
type: "POST",
url: "page.aspx/LoadWayPoints",
data: "{'args': '" + $('numJourneys').val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg.d != '[]') {
var lat = "";
var long = "";
$.each(msg.d, function () {
lat = this['Lat'];
long = this['Long'];
});
alert('lat =' + lat + ', long =' + long);
}
}
});
我认为这个问题与JSON的格式有关,但我可能不正确。任何帮助都会很棒。
谢谢, 富
答案 0 :(得分:2)
正在发生的事情是你在JSON中的字符串中获得JSON编码。这是多余的,但有一个解决方案,而不改变您的输出方法。
为了解决这个问题,jQuery有一个JSON解析器($.parseJSON()
)你可以用来解析响应中的字符串。
所以我相信你会这样做:
$.ajax({
type: "POST",
url: "page.aspx/LoadWayPoints",
data: "{'args': '" + $('numJourneys').val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg.d != '[]') {
var content = $.parseJSON(msg.d);
var lat = "";
var long = "";
$.each(content, function () {
lat = this['Lat'];
long = this['Long'];
});
alert('lat =' + lat + ', long =' + long);
}
}
});
答案 1 :(得分:1)
看起来您的JSON构建错误:
{"d":"[{\"Lat\":\"51.85036\",\"Long\":\"-8.48901\"},{\"Lat\":\"51.89857\",\"Long\":\"-8.47229\"}]"}
可能应该是:
{"d":[{"Lat":"51.85036","Long":"-8.48901"},{"Lat":"51.89857","Long":"-8.47229"}]}
注意{"d":"..."}
?看起来你的“d”指向一个字符串,而不是一个数组。
答案 2 :(得分:0)
请试试这个:
$.each(msg.d, function () {
lat = this['Lat'];
long = this['Long'];
});
经过JSON后,没有MapLatPosition或MapLongPosition
HTH
答案 3 :(得分:0)
我认为你需要这样的东西:
$.ajax({
type: "POST",
url: "page.aspx/LoadWayPoints",
data: "{'args': '" + $('numJourneys').val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$.each(msg.d, function () {
var lat = "";
var long = "";
lat = this.Lat; // Lat/Long this is how you called it in your JSON responce
long = this.Long;
alert('lat =' + lat + ', long =' + long);
});
}
});
希望有所帮助