2016-05-17 89 views
-4

我嘗試通過以下JSON.parse不會產生對象

{ 「1」 我的字符串數組正確:{ 「11」:{ 「cityid」:1, 「BPID」:11, 「name」:「Golden Mile Tower」,「time」:「+ 00:00」,「sbpid」:50043}},「2」:{「34」:{「cityid」:2,「bpid」 34,「name」:「KL Sentral」,「time」:「+ 00:00」,「sbpid」:50040}},「8」:{「244」:{「cityid」:8,「bpid」 :244, 「名」: 「塔曼 斯公主」, 「時間」: 「+ 00」, 「sbpid」:50042}}}

console.log(JSON.parse(str)) 

它不會成爲世界衛生大會T I指望像下面

enter image description here

任何想法,爲什麼?

+0

您的字符串無法使用純json解析器轉換爲圖像。 – Justinas

+1

它不解析爲包含3個元素的數組 - 它將其解析爲具有三個屬性的對象,因爲這就是編碼數據的內容。 – Andy

+0

@爲了達到圖像中顯示的結果,我做了什麼? – Jennifer

回答

1

它無法產生正確的數組,因爲你沒有它。

您有ObjectArray

這是陣列,導致它從索引1開始:

{ 
    "1":{"11":{"cityid":1,"bpid":11,"name":"Golden Mile Tower","time":"+00:00","sbpid":50043}}, 
    "2":{"34":{"cityid":2,"bpid":34,"name":"KL Sentral","time":"+00:00","sbpid":50040}}, 
    "8":{"244":{"cityid":8,"bpid":244,"name":"Taman Sri Puteri","time":"+00:00","sbpid":50042}} 
} 

,這是陣列:

[ 
    {"11":{"cityid":1,"bpid":11,"name":"Golden Mile Tower","time":"+00:00","sbpid":50043}}, 
    {"34":{"cityid":2,"bpid":34,"name":"KL Sentral","time":"+00:00","sbpid":50040}}, 
    {"244":{"cityid":8,"bpid":244,"name":"Taman Sri Puteri","time":"+00:00","sbpid":50042}} 
] 

用於轉換ObjectArray使用循環,如:

var arr = []; 
for(var a in your_object){ 
    arr.push(a); 
} 
+0

所以我必須將對象轉換爲數組? – Jennifer

+0

這意味着您的後端工作不正確,或者您可以使用對象工作,或者您可以通過循環將其轉換爲數組 – xAqweRx

+0

不,我從DOM抓取,它必須是這樣的。 – Jennifer

0

JSON.parse將僅解析字符串,所以您提供的對象不會解析對象。所以用單引號包裝你的對象。

我在開始和最後添加了單引號。現在你可以檢查。它會返回數組。 JSON.parse('{「1」:{「11」:{「cityid」:1,「bpid」:11,「name」:「Golden Mile Tower」,「time」:「+ 00: 00「,」sbpid「:50043}},」2「:{」34「:{」cityid「:2,」bpid「:34,」name「:」KL Sentral「,」time「 00「,」sbpid「:50040}},」8「:{」244「:{」cityid「:8,」bpid「:244,」name「:」Taman Sri Puteri「,」time「 :00" , 「sbpid」:50042}}}');