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

Luk*_*kmo 25 javascript jquery tag-it

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

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

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

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

Sir*_*rko 52

您可以使用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
Run Code Online (Sandbox Code Playgroud)

如果你的后端是用PHP编写的,也有类似的方法,用JSON字符串来工作:json_encode()(PHP实况)和json_decode()(PHP实况).

大多数其他语言为JSON字符串提供类似的功能.


Eng*_*eer 7

您可以使用JavaScript Object Notation(JSON)格式.

Javascript 支持这些方法:


rai*_*7ow 5

JSON怎么样呢?

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

var arrExtracted = JSON.parse(arrSerialized);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,JSON通常用于其他语言的序列化,即使它们有自己的序列化功能.)