Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery:从JSON中提取Int总是返回NaN_Jquery_Json - Fatal编程技术网

JQuery:从JSON中提取Int总是返回NaN

JQuery:从JSON中提取Int总是返回NaN,jquery,json,Jquery,Json,我试图提取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

我试图提取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) });
        }

    });

});
$(文档).ready(函数(){
var数据点=[];
$.getJSON(“/Home/GetData/”,函数(数据){

对于(var i=0;i您有一个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) });
        }

 });
$.getJSON(“/Home/GetData/”,函数(数据){
var jsData=json.Parse(data);//在这里解析。。。
对于(var i=0;i您需要添加
结果数据周围的
jQuery.parseJSON()

像这样:

$.getJSON("/Home/GetData/", function (data) {
        data = jQuery.parseJSON(data);
        dataPoints= data;
    });

但是您确实应该确保您的服务以Json而不是字符串的形式返回结果

您检索了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

使用调试器检查从Ajax调用返回的“数据”的结构。它看起来像什么?上面粘贴在“这是我的原始JSON”下的数据是来自我的调试器。这正是我的脚本试图处理的。试试这个。它工作得很好。数组的元素似乎是要分析的字符串。嗨,Luca阅读了其他人的评论。我试图分析字符串而不是JSON对象,所以出现了一个问题。看看下面的答案,我应该提到,您不需要使用
$.parseJSON
使用
$.getJSON
时,因为回调是自动执行的。可能您的资源没有发送
JSON
对象。这就是问题所在。解决方案是要么修复资源以发送
JSON
,要么不使用
$.getJSON
,而是使用常规的
$.get
。完全正确。对我认为它是在解析一个Json对象,而不是字符串。谢谢!接受。阿米尔是第一个,但你的解决方案更干净。for循环是冗余的OP,Json.parse已经生成了一个对象。如果是,则会改变它