首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用jQuery解析JSON文件

无法使用jQuery解析JSON文件
EN

Stack Overflow用户
提问于 2016-12-22 20:30:10
回答 4查看 292关注 0票数 0

我有这个JSON:

代码语言:javascript
复制
{
    "solution": {
        "section1": {
            "cell-1": "1",
            "cell-2": "2",
            "cell-3": "3",
            "cell-4": "4",
            "cell-5": "5",
            "cell-6": "6",
            "cell-7": "7",
            "cell-8": "8",
            "cell-9": "9"
        },
        "section2": {
            "cell-1": "1",
            "cell-2": "2",
            "cell-3": "3",
            "cell-4": "4",
            "cell-5": "5",
            "cell-6": "6",
            "cell-7": "7",
            "cell-8": "8",
            "cell-9": "9"
        }
    }
}

我的代码:

代码语言:javascript
复制
$.getJSON('/static/front/js/src/sudoku/22122016.json', function(data) {
    $.each(data.solution.section1[0], function() {
        $.each(this, function(cell, cellNumber) {
            console.log(cell + ' ' + cellNumber);
        });
    });
});

这段代码给出了以下错误:

代码语言:javascript
复制
Uncaught TypeError: Cannot use 'in' operator to search for 'length' in 1
at isArrayLike (jquery.js:535)
at Function.each (jquery.js:362)
at String.<anonymous> (main.js:61)
at Function.each (jquery.js:371)
at Object.success (main.js:60)
at fire (jquery.js:3187)
at Object.fireWith [as resolveWith] (jquery.js:3317)
at done (jquery.js:8757)
at XMLHttpRequest.<anonymous> (jquery.js:9123)
in jquery.js:535

我需要单独访问每个节,所以我需要进入每个节,然后迭代每个键并获得它的值。我怎样才能做到这一点呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-22 20:42:04

在没有测试的情况下,我会猜测:

代码语言:javascript
复制
$.getJSON('/static/front/js/src/sudoku/22122016.json', function(data) {
    $.each(data.solution, function(sectionName, cells) {
        $.each(cells, function(cellName, cellNumber) {
            console.log(cellName + ' ' + cellNumber);
        });
    });
});

此时,您可能希望考虑通过将其拆分成方法或直接导航到单元格来降低缩进级别。

票数 2
EN

Stack Overflow用户

发布于 2016-12-22 20:35:12

您可以遍历单元格:

代码语言:javascript
复制
$.each(data.solution.section1, function(cell, cellNumber) {
  console.log(cell + ' ' + cellNumber) 
})
票数 3
EN

Stack Overflow用户

发布于 2016-12-22 20:47:55

我不知道您到底想要得到什么,但是将"“放在data.solution.section1的末尾可以防止跨data.solution.section1内容进行索引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41283239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档