11

所以在javascript中我有一个看起来像这样的数组:

[{x1:0,x2:2000,y:300},{x1:50,x2:250,y:500}]

我想将它存储在我的数据库中的单个字段中。我考虑过以某种方式将其设为字符串,然后将其保存为文本,但我真的不知道一种非常有效且“智能”的方式来做到这一点。我也听说过 VARBINARY 字段类型,但我不知道如何将对象/数组写入其中之一以及如何读出它......

我真正最喜欢的是它是否会自动被读取为数组。我的 MYSQL 插件(或者在 js 中调用的)将我的查询作为对象数组返回,如下所示:

[{id:0,bla:"text"},{id:0,bla:"text"}]

对于具有列 id 和 bla 的表中的查询。

好吧,假设我的数组存储在 bla 中,我希望对象在返回时看起来与此完全一样(但是,如果这不可能,我可以使用替代解决方案)。

[{id:0,bla:[{x1:0,x2:2000,y:300},{x1:50,x2:250,y:500}]},{id:0,bla:[{x1: 0,x2:2000,y:300},{x1:50,x2:250,y:500}]}]

所以基本上我会得到一个包含两个对象的数组,每个对象都具有属性 bla 和 id,其中 bla 是具有属性 x1、x2 和 y 的对象数组。

4

1 回答 1

16

以某种方式使其成为字符串,然后将其保存为文本,但我真的不知道一种非常有效且“智能”的方式来做到这一点。

将字符串保存为 JSON,如下所示:

var myArr = [{x1:0,x2:2000,y:300},{x1:50,x2:250,y:500}];
myArrString = JSON.stringify(myArr);

稍后,当您从 MySQL 取回 JSON 字符串时,您可以使用 将其转回数组JSON.parse(),如下所示:

var myArr = JSON.parse(myArrString)

是的,如果您想知道,JSON 功能已添加到 Javascript 的标准代码库中:这就是它的流行程度。

于 2012-05-10T18:27:03.897 回答