简体   繁体   English

未捕获的语法错误:意外的令牌:getJSON

[英]Uncaught Syntax Error: Unexpected Token : getJSON

I am trying to populate my page dynamically using the data from my JSON file I am getting this error 我试图使用我的JSON文件中的数据动态填充我的页面我收到此错误

"Uncaught Syntax Error: Unexpected Token :" on line 2.

So here's my json file, there is more to it but I didnt want to post the entire file. 所以这是我的json文件,还有更多,但我不想发布整个文件。

{
"jobs": [
    {
        "title": "Graduate IT Development Programme #1",
        "path": "/path/to/job",
        "type": "Graduate job",
        "location": [
            "North West",
            "North East"
        ],
        "closingDate": "20/05/2014",
        "continuous": false,
        "skills": [
            "HTML",
            "CSS",
            "JavaScript",
            "Java",
            "CI",
            "Testing"
        ],
        "contract": "Permanent",
        "salary": {
            "lower": 14501,
            "upper": 17000,
            "currency": "£"
        },
        "employer": {
            "name": "Mercer",
            "href": "/path/to/employer",
            "logo": "img/mercer-logo.png"
        }
    },
    {
        "title": "Web Developer",
        "path": "/path/to/job",
        "type": "Graduate job",
        "location": ["Greater London"],
        "continuous": true,
        "skills": [
            "HTML",
            "CSS",
            "JavaScript"
        ],
        "salary": {
            "lower": 16000,
            "upper": 21000,
            "currency": "€"
        },
        "employer": {
            "name": "FDM plc",
            "href": "/path/to/employer",
            "logo": "img/fdm-logo.png"
        }
    },
    {
        "title": "Front-end Web Developer",
        "path": "/path/to/job",
        "type": "Graduate scheme",
        "location": ["Greater London"],
        "closingDate": "20/04/2014",
        "continuous": false,
        "skills": [
            "HTML",
            "CSS",
            "Java",
            "Testing"
        ],
        "salary": {
            "lower": 17001,
            "upper": 19500,
            "currency": "£"
        },
        "employer": {
            "name": "British Airways plc",
            "href": "/path/to/employer",
            "logo": "img/british-airways-logo.png"
        }
    }
    ]
}

And here's my .getJSON function (document.write is just temporary until it's working) 这是我的.getJSON函数(document.write只是暂时的,直到它正常工作)

$(document).ready(function() {
     $.getJSON( 'js/jobs.json',function( result ){
        document.write(result.jobs.title);
     });
});

So I'm not sure what the problem is. 所以我不确定问题是什么。 Having looked at other questions and other solutions I feel somewhat more confused than I was before. 看了其他问题和其他解决方案后,我感觉比以前更加困惑。

try using stringify, like below 尝试使用stringify,如下所示

$(document).ready(function() {
        $.getJSON( 'js/jobs.json',function( result ){
            var jsonString = JSON.stringify(result);
            var result = JSON.parse(jsonString);
            console.log(result); 
            //document.write(result.jobs.title);
        });
});

Hope this helps you out. 希望这可以帮助你。

If you have looked at the json structure, jobs is an array of objects. 如果您查看了json结构,则jobs是一个对象数组。 Therefore title cannot be directly accessed. 因此无法直接访问title You should get it by the index, for eg. 你应该通过索引得到它,例如。

$(document).ready(function () {
    $.getJSON('js/jobs.json', function (result) {
        // in case the result is not in json data type
        // otherwise not necessary
        result = JSON.parse(result); 
        result.jobs.map(function (v) {
            console.log(v.title);
            document.write(v.title);
        });        
    });
});

DEMO DEMO

EDITED DEMO 编辑演示

If the error is coming up after removing that AJAX call, the issue may actually be in one of your HTML pages that is trying to include something such as 如果在删除该AJAX调用后出现错误,则问题实际上可能在您的某个HTML页面中,该页面试图包含诸如

<script src="js/myJsonFile.json"></script>

If that is the case, you need only remove that line since you want to load the file through an AJAX call and don't need to try and include the file in the header 如果是这种情况,您只需删除该行,因为您想通过AJAX调用加载文件,而不需要尝试将文件包含在标题中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM