當我運行下面的代碼時出現此錯誤:SyntaxError:JSON.parse:意外字符 data = JSON.parse(data);如何解決錯誤:JSON.parse:意外字符?
當我運行console.log(data);它說數據是不確定的。
console.log(data);
data = JSON.parse(data);
有人知道如何解決錯誤問題嗎?
當我運行下面的代碼時出現此錯誤:SyntaxError:JSON.parse:意外字符 data = JSON.parse(data);如何解決錯誤:JSON.parse:意外字符?
當我運行console.log(data);它說數據是不確定的。
console.log(data);
data = JSON.parse(data);
有人知道如何解決錯誤問題嗎?
其實JSON.parse()方法的語法是JavaScriptObject JSON.parse(String)
。 這意味着JSON.parse()方法將一個有效的JSON字符串作爲參數,並返回一個JavascriptObject。如果作爲參數傳遞的字符串不是有效的JSON字符串,則會引發錯誤。 因此,首先您必須將有效的JSON字符串作爲參數傳遞給JSON.parse()
方法。
數據未定義。這就是爲什麼JSON.parse拋出一個錯誤。因此,請調查「數據」的價值。
如果這是確定你對待空/未定義的數據作爲空JSON對象那就試試這個:
var key = $(this).attr("track_id");
$("#track_info div[data-role=header] h1").text(key);
var data = window.localStorage.getItem(key);
if (data == undefined || data == null || data == "")
{
data = 'null';
}
else
{
console.log(data);
}
data = JSON.parse(data);
console.log(data);
使用data = 'null';
我已經創建空的JSON對象,這樣JSON.parse()
不會失敗。
如果數據格式不正確或甚至沒有JSON,JSON.parse()仍然會失敗。 – Adrian
@Adrian是的,你是對的。如果OP添加更多信息,我會嘗試相應地更新答案。謝謝。 –
@Azizi謝赫謝謝,但你的代碼不工作... –
這可能會幫助:
var key = $(this).attr("track_id");
$("#track_info div[data-role=header] h1").text(key);
var data = window.localStorage.getItem(key);
console.log(data); /* The output here may indicate the problem */
/* valid JSON should be a string like
"{ \"propName\":\"propValue\" , ...}"
*/
try{
data = JSON.parse(data);
}
catch(e){
console.log(e);
}
但不知道更多關於你的代碼是非常困難,幫助...你使用jQuery? ($(...)也可以被其他庫使用。)
請參閱http://en.wikipedia.org/wiki/JSON以獲取JSON的更多示例以及良好的概述。 另外http://www.json.org/
謝謝,但是當我使用你的代碼時,我得到這個錯誤:TypeError:data [i]。coords is undefined + total_km + = gps_distance(data [i] .coords.latitude,data [i] .coords.longitude,data [i + 1] .coords.latitude,data [i + 1] .coords.longitude); 。數據仍然未定義... –
這看起來不像來自'我的'代碼。在console.log(data)行放置一個斷點並在調試器中檢查數據變量。 – Adrian
正如許多人所說的那樣,要幫助你是很困難的,因爲你沒有解釋你想要做什麼,或者顯示了足夠的代碼和細節來幫助我們。 – Adrian
定義數據.... – xbonez
爲什麼不向我們展示有問題的代碼(要解析的字符串)?很可能你的JSON字符串中有白色或控制字符。 – marekful
我們需要了解您如何初始化數據。 – adamjc