2017-06-16 121 views
0

我正在使用ES6和抓取。Javascript抓取不讀取JSON文件

它給我這個錯誤:

Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 

下面是代碼:

fetch('list.json').then(function(response) { 
    return response.json(); 
    }).then(function(j) { 

    console.log(j); 
    }); 

,這裏是從list.json數據:

[ 
    { 
    "id": 1, 
    "name": "name1" 
    }, 
    { 
    "id": 2, 
    "name": "name2" 
    } 
] 

爲什麼我我得到這個錯誤,我該如何解決這個問題?

+2

的迴應不是JSON,但HTML。可能是一個錯誤消息。看看控制檯。 –

+0

我的猜測是服務器以HTML頁面的形式返回錯誤。你能檢查你得到的迴應嗎? (例如Chrome開發工具中的網絡標籤) – yadejo

+0

看來,獲取HTML文件,你有404 HTML文件或類似的東西? – dloeda

回答

0

這不是一個有效的JSON文件。有效的JSON會是這樣

{ 
    "data":[ 
    { 
     "id": 1, 
     "name": "name1" 
    }, 
    { 
     "id": 2, 
     "name": "name2" 
    } 
    ] 
} 
0

你是不是送其正在由以.json方法正確地理解一個JSON,你應該將其丟在提到的方式,一切都應該是好去。

正確的JSON:

{ "products" : [ 
    { "Name": "Cheese", "Price" : 2.50, "Location": "Refrigerated foods"}, 
    { "Name": "Crisps", "Price" : 3, "Location": "the Snack isle"}, 
    { "Name": "Pizza", "Price" : 4, "Location": "Refrigerated foods"}, 
    { "Name": "Chocolate", "Price" : 1.50, "Location": "the Snack isle"}, 
    { "Name": "Self-raising flour", "Price" : 1.50, "Location": "Home baking"}, 
    { "Name": "Ground almonds", "Price" : 3, "Location": "Home baking"} 
]}