2017-05-24 93 views
0

我JSON數據,我正努力在以下小提琴未捕獲的SyntaxError:意外的標記p在JSON在15位

解析,但其引發的錯誤

Uncaught SyntaxError: Unexpected token p in JSON at position 15

我無法粘貼這裏由於大尺寸的JSON好心跟隨小提琴

var varArray = JSON.parse(jsonData); 

console.log(varArray); 

小提琴

https://jsfiddle.net/ffeLtaa6/

有什麼建議嗎?

+0

我認爲這是因爲你的JSON以''開頭# –

+0

@KobyDouek它直接來自db我應該怎麼做才能將它轉換爲js可識別的格式? – Vikram

+2

@Vikram後端應該送你的數據在原始格式,但它似乎是由後臺第一 – MysterX

回答

3

您錯誤地包裹着你的JSON部分地區報價

[{"pricing":"{\"price\": .... 
      ^
      This shouldn't be here 

...

.... \"standingCharge\": \"y\"}}"}] 
           ^
           This shouldn't be here 

或者,也許你應該有部分包裹,但隨後你需要正確逃生在該部分內的所有反斜槓,即\\而不僅僅是\
在這種情況下,當你做JSON.parse(jsonData)你會得到(數組內),它們有一個單一的財產,pricing,對象與本身是一個JSON字符串的值。

1

它看起來像你的JSON數據已經包含在報價的對象。

採取在15位置的誤差;直到那個點由parse()解釋的字符串是: [{"pricing":"{"

在這一點上,你的解析函數正在尋找一個逗號繼續或結束括號來完成這個對象。

現在,如果你跳過下降字符串來定位3312,你會看到的字符序列}}"}。最後兩個括號與最開始的括號相匹配。

如果您希望表示該字符串的對象,則您的字符串格式應爲[{"pricing":"{ ... }"}],如果您需要「定價」下的字符串或[{"pricing":{" ... "}}]

看看你是如何構建JSON-ifying的對象,我覺得你可能會在父對象成員的stringify()函數的某個地方翻倍。

相關問題