2014-03-30 43 views
4

我想從我的JSON文件來填充我的頁面動態地使用這些數據,我得到這個錯誤未捕獲的語法錯誤:意外的標記:的getJSON

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

我相當的新本,所以請裸陪我。

所以這裏是我的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" 
     } 
    } 
    ] 
} 

這是我的.getJSON函數(文件撰寫只是暫時的,直到它的工作)

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

所以我不知道是什麼問題。看過其他問題和其他解決方案後,我覺得比以前更加困惑。

+1

此代碼似乎按原樣運行,也許您應該考慮發佈文件,或者至少以結尾的方式(使用右括號)。 – SeinopSys

+0

您可以嘗試使用其中的某個工具驗證您的JSON,例如http://jsonformatter.curiousconcept.com/。 – Sirko

+0

我把JSON通過你提供的驗證器,它很好。我編輯了帖子並添加了完整的JSON文件。 – user3477885

回答

1

如果您已經查看了json結構,jobs是一組對象。因此不能直接訪問title。你應該通過索引得到它,例如。

$(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

EDITED DEMO

+0

嗨,謝謝,這對我幫助很大,從文件中獲取數據。然而,錯誤仍然出現在我身上。它似乎並沒有影響代碼,我主要試圖更好地理解錯誤發生的原因。 – user3477885

+0

@ user3477885我認爲數據類型爲json的響應已經很好定義了。如果你不確定它是否解析它,以確保你有正確的格式。看我的編輯 –

2

嘗試使用字符串化,像下面

$(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); 
     }); 
}); 

希望這有助於你出去。

0

如果錯誤移除AJAX調用,這個問題實際上可能是在HTML頁面中的一個嘗試,包括一些諸如

後上來
<script src="js/myJsonFile.json"></script> 

如果是這種情況,您只需要刪除該行,因爲您想通過AJAX調用加載文件,並且不需要嘗試並在頭文件中包含該文件

相關問題