2014-04-14 97 views
0

我在這裏解決了一個不尋常的問題。我的GUIDjavascript數組轉換爲具有相同鍵名的對象

[ 
"c01f8237-72c8-4fa6-9c53-1915750385aa", 
"2c8a471b-c408-436c-81b1-3f3867d8ffb4", 
"27a44d46-12bd-4784-ceed-57ada31b0e33" 
] 

的陣列該陣列已被改造成:

{ 
    id: "c01f8237-72c8-4fa6-9c53-1915750385aa", 
    id: "2c8a471b-c408-436c-81b1-3f3867d8ffb4", 
    id: "27a44d46-12bd-4784-ceed-57ada31b0e33" 
    } 

我知道不應該做的,但遺憾的是無法控制後端部件。任何想法?

感謝

+3

同一個鍵不能在對象中出現一次以上 – thefourtheye

+0

我知道的很好。但正如我在問題中所說的,不幸的是接收對象的後端沒有以標準方式構建,我無法更改它。 – Mauro74

+2

@ Mauro74他的意思是,它不可能在JavaScript中。但是,究竟是什麼**正是您的後端期望?後端期望序列化格式,而不是JavaScript。以上是無效的JSON,是不是不期待json? –

回答

2

字典鍵的整點是,它唯一地映射到某個值。您所需的輸出嘗試複製一個密鑰,因此既不可能也不合理。

如果你把它傳遞給後端(如你所建議的那樣),那麼你當然可以手動構建一個字符串來傳遞重載有效載荷中的鍵的線,但是你將無法真正做到它首先在JavaScript中。您必須手動構建字符串。

還要注意的是,你可以把這個格式不管你想要的,但你不能稱之爲JSON,你不能使用JSON庫來構建它(因爲它不是JSON)。如果您的API需要自定義格式,那麼您需要編寫代碼來構建該自定義格式。

+1

我非常瞭解。但正如我在問題中所說的,不幸的是接收對象的後端沒有以標準方式構建,我無法更改它。 – Mauro74

+0

如果您將此傳遞給後端,那麼您當然可以手動構建一個字符串以傳遞重複JSON有效內容中的鍵的連線,但是您將無法先用JavaScript實現它。 –

1

如果你想要的是一個字符串只是像做

var str = '{' + idArray.map(function(id) { 
     return "id: "+id 
    }).join(',\n')+'}'; 

我不知道MIME類型,你會穿上,雖然自無效JSON。

+1

或者只是:'str ='{id:''+ idArray.join('「,id:」')+'「}''可能只是'text/plain' MIME。而且你錯過了結果中ID的引號。 –

+0

這回答這個問題,因爲它可能是非感性的 –

相關問題