【问题标题】:Storing a javascript array that contains objects in a MYSQL database?在 MYSQL 数据库中存储包含对象的 javascript 数组?
【发布时间】:2012-05-19 09:00:15
【问题描述】:

所以在 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 的对象数组。

【问题讨论】:

标签: javascript mysql arrays object


【解决方案1】:

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

将字符串保存为 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 的标准代码库中:这就是它的流行程度。

【讨论】:

  • 以前从来没有研究过这个 JSON,但它看起来很有趣,所以我想我可以尝试一下......
  • 这很简单,我已经告诉了你所有你需要知道的。 :)
  • 真的就是这样吗?那么JSON只有JSON.stringify()和JSON.parse()这两个函数吗?又好又简单,正是我喜欢的方式。
  • 是的,就是这样。非常简单,但非常有用。您还可以为不想很好地打包的复杂对象定义自己的打包和解包过程,但是对于像您在这里所做的简单事情,stringifyparse 应该可以很好地工作。
猜你喜欢
  • 2019-09-15
  • 2015-06-09
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
相关资源
最近更新 更多