我正在尝试提取JSON对象的x和y值。
这是我从调试器中提取的原始JSON:
"[{\"x\":10,\"y\":10},{\"x\":20,\"y\":10},{\"x\":70,\"y\":10},{\"x\":80,\"y\":10},{\"x\":90,\"y\":10}]"
这是我处理它的代码
$(document).ready(function () {
var dataPoints = [];
$.getJSON("/Home/GetData/", function (data) {
for (var i = 0; i <= data.length - 1; i++) {
dataPoints.push({ x: parseInt(data[i].x), y: parseInt(data[i].y) });
}
});
});
每个元素都按预期处理为dataPoints但是所有值都包含NAN而不是预期的值。
答案 0 :(得分:1)
你有一个json字符串,你需要将它解析为json,然后处理数字:
var str = "[{\"x\":10,\"y\":10},{\"x\":20,\"y\":10},{\"x\":70,\"y\":10},{\"x\":80,\"y\":10},{\"x\":90,\"y\":10}]";
console.log(str[0]); // [
console.log(str[1]); // {
var json = JSON.parse(str);
console.log(json[0].x);
您的代码:
$.getJSON("/Home/GetData/", function (data) {
var jsData = json.Parse(data); // parse here...
for (var i = 0; i <= data.length - 1; i++) {
dataPoints.push({ x: parseInt(jsData[i].x), y: parseInt(jsData[i].y) });
}
});
答案 1 :(得分:1)
您需要添加
你周围的jQuery.parseJSON()
结果数据
像这样:
$.getJSON("/Home/GetData/", function (data) {
data = jQuery.parseJSON(data);
dataPoints= data;
});
但是你真的应该确保你的服务以Json而不是字符串
的形式返回结果答案 2 :(得分:1)
您检索了JSON但是您不需要创建自己的解析函数:
var dataPoints = [];
var test = "[{\"x\":10,\"y\":10},{\"x\":20,\"y\":10},{\"x\":70,\"y\":10},{\"x\":80,\"y\":10},{\"x\":90,\"y\":10}]";
var data = JSON.parse(test);
data
[Object { x=10, y=10}, Object { x=20, y=10}, Object { x=70, y=10}, Object { x=80, y=10}, Object { x=90, y=10}]
data[0]['x']
10