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

Serializing and unserializing an array in javascript

本文关键字:反序列化 数组 序列化 javascript      更新时间:2023-09-26

我正在使用jquery的tag-it库来制作一个标记系统(有点像stackoverflow系统)。

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

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

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

您可以使用

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

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

您可以使用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 通常用于其他一些语言的序列化,即使它们有自己的序列化功能。