2015-12-31 75 views
3

我使用JSONLint解析一些JSON和我不斷收到錯誤:JSON解析錯誤:期待 'STRING'

Error: Parse error on line 1: [{「 product」: [{「
---^ Expecting 'STRING', '}', got 'undefined'

這是代碼:

[ 
    { 
     「product」 : [ { 「code」 : 「Abc123」, 「description」 : 「Saw blade」, 「price」 : 34.95 } ], 
     「vendor」 : [ { 「name」 : 「Acme Hardware」, 「state」 : 「New Jersey」 } ] 
    }, 

    { 
     「product」 : [ { 「code」 : 「Def456」, 「description」 : 「Hammer」, 「price」 : 22.51 } ], 
    }, 

    { 
     「product」 : [ { 「code」 : 「Ghi789」, 「description」 : 「Wrench」, 「price」 : 12.15 } ], 
     「vendor」 : [ { 「name」 : 「Acme Hardware」, 「state」 : 「New Jersey」 } ] 
    }, 

    { 
     「product」 : [ { 「code」 : 「Jkl012」, 「description」 : 「Pliers」, 「price」 : 14.54 } ], 
     「vendor」 : [ { 「name」 : 「Norwegian Tool Suppliers」, 「state」 : 「Kentucky」 } ] 
    } 
] 
+2

不要使用智能引號。 – SLaks

+0

什麼是智能報價? – yitzih

+0

噢好吧看起來,並更換了所有這些,它的工作表示感謝! – yitzih

回答

10

JSON字符串文字必須使用普通報價字符("),不是智能報價(「」)。

+2

還值得注意的是,即使在轉換爲普通引號字符後,JSON仍然無效。 「價格」後面有一個尾隨的逗號:22.51}],'。沒有跟隨它的項目,所以逗號應該被刪除。 – gfullam

+0

我剛剛使用單引號犯了這個錯誤,所以請不要使用這些:) –

2

您正在使用一些unicode雙引號字符。將它們替換爲正常的"雙引號。

在第二個元素的末尾還有一些額外的逗號。

現在,這是正常的

[ 
    { 
     "product" : [ { "code" : "Abc123", "description" : "Saw blade", "price" : 34.95 } ], 
     "vendor" : [ { "name" : "Acme Hardware", "state" : "New Jersey" } ] 
    }, 

    { 
     "product" : [ { "code" : "Def456", "description" : "Hammer", "price" : 22.51 } ] 
    }, 
    { 
     "product" : [ { "code" : "Ghi789", "description" : "Wrench", "price" : 12.15 } ], 
     "vendor" : [ { "name" : "Acme Hardware", "state" : "New Jersey" } ] 
    }, 
    { 
     "product" : [ { "code" : "Jkl012", "description" : "Pliers", "price" : 14.54 } ], 
     "vendor" : [ { "name" : "Norwegian Tool Suppliers", "state" : "Kentucky" } ] 
    } 
]