2015-09-21 157 views
-2

當我嘗試解析有效​​的JSON對象時,JSON.parse拋出錯誤。我的問題是我收到來自webservice的數據,有時它與解析一起工作,有時它不知道是什麼原因。我希望JSON.parse返回相同的對象,如果它的一個有效的JSON對象?或者如果它的字符串解析它。JSON.parse無法解析有效的JSON對象

var obj1= { Result: Inprogress }; 
var json = JSON.parse(obj1); 

請幫助我理解

+1

沒有這樣的事情作爲「JSON對象」。 JSON是一個字符串。 – Tomalak

+1

@Stumblor是的,Tomalak是正確的。 JSON是一個序列化方案。這裏的OP討論的是** JavaScript **對象,而不是JSON對象。 – Pointy

+1

@Stumblor Point#1:不要鏈接到w3schools作爲參考源。它們不可信,不應使用。 JSON參考源是http://json.org/。第二點:JSON總是一個字符串。如果你有不同的想法,你會犯同樣的錯誤。 – Tomalak

回答

2

你有什麼有一個JavaScript對象。它不需要被解析,因爲它是簡單的JavaScript語法並且JavaScript本身解析它。 JSON是一種序列化格式。

JSON.parse()方法以一個參數,像一個從AJAX調用或從本地存儲或數據的其他來源,只有在字符串值涉及檢索。

+0

但是爲什麼JSON.parse thr錯誤...?我們無法將JavaScript對象解析爲JSON? –

+2

@DanFisher如果要將JavaScript對象轉換爲JSON字符串,請使用'JSON.stringify()'。動詞「to parse」描述解釋文本的過程(字符串的內容),所以「解析爲JSON」是向後的並且沒有意義。 – Pointy

+0

我明白我的問題是我收到來自其他人的對象/字符串,我不確定它是哪一個。我有時會遇到錯誤,有時我不會收到錯誤消息。我想知道爲什麼JSON.parse在其有效對象時出錯! –