2012-07-03 109 views
19

我正在使用jQuery的標記庫來製作一個標記系統(有點像stackoverflow之一)。在javascript中對數組進行序列化和反序列化

用戶鍵入他的標籤後,庫返回一個我想要保存在MySQL數據庫中的javascript數組。我沒有在javascript中找到序列化和反序列化函數。

在編寫我自己的函數之前,我想確保我沒有在這裏重新發明輪子。看起來很瘋狂,沒有原生的方式將數組保存到數據庫中,然後再次使用它。

tl; dr =>如何將JavaScript數組保存到MySQL數據庫中以便以後重用?

+1

如何JSON對象?這取決於你想如何保存它;你真的想在數據庫中爲所有標籤設置一行,還是要分開行?似乎如果標籤分成不同的行,通過標籤進行搜索會更容易。 – Pointy

+0

這似乎是最好的辦法。謝謝。 – Lukmo

+0

好吧,正如我所說的,如果查詢需要挖掘填充到單個列中的一串標籤,則通過標籤搜索會變得非常慢很多。 – Pointy

回答

41

您可以使用JSON.stringify()MDN docu)和JSON.parse()MDN docu)的JavaScript對象轉換爲字符串表示其存儲在數據庫中。

var arr = [ 1, 2, 3 ]; 

var serializedArr = JSON.stringify(arr); 
// "[1, 2, 3]" 

var unpackArr = JSON.parse(serializedArr); 
// identical array to arr 

如果你的後臺是用PHP編寫的,也有類似的方法,用JSON字符串來工作:json_encode()PHP docu)和json_decode()PHP docu)。

大多數其他語言爲JSON字符串提供相似的功能。

+0

我只想指出JSON.parse將清理使用Newtonsoft.Json.JsonConvert.SerializeObject的Web Api調用的序列化輸出。在我的情況下,我有一個序列化的字符串,看起來像\t「[」Industry「,」Region「,」Topic「,」Type「]」,並將JSON.parse轉換爲所需的字符串數組。 – devinbost

5

剛剛JSON ing怎麼樣?

var arr = [1,2,3]; 
var arrSerialized = JSON.stringify(arr); 
... 

var arrExtracted = JSON.parse(arrSerialized); 

順便說一句,JSON經常用於其他語言的序列化,即使它們有自己的序列化函數。 )

6

您可以使用JavaScript Object NotationJSON)格式。

Javascript支持這些方法:

相關問題