在javascript中序列化和反序列化数组

我正在使用tag-it库为jquery创建一个标记系统(有点像stackoverflow)。

在用户键入其标签后,库返回一个我想要保存在MySQL数据库中的javascript数组。 我没有在javascript中找到序列化和反序列化函数。

在编写我自己的function之前,我想确保我不是在这里重新发明轮子。 似乎很疯狂,没有本地方法将数组保存到数据库然后再次使用它。

tl; dr =>如何在MySQL数据库中保存javascript数组以便以后重用?

您可以使用JSON.stringify() ( MDN JSON.stringify() )和JSON.parse() ( MDN docu )将JavaScript对象转换为字符串表示forms,以将其存储在数据库中。

 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文档 )和json_decode() ( PHP文档 )。

大多数其他语言为JSON字符串提供类似的function。

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

Javascript支持以下方法:

  • JSON.stringify – > 将对象序列化为字符串

  • JSON.parse – > 从字符串反序列化对象

JSON怎么样呢?

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

顺便说一句,JSON经常用于其他语言的序列化,即使它们有自己的序列化function。 )