2012-07-03 111 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支持这些方法:

相关问题