在 MYSQL 数据库中存储包含对象的 javascript 数组?
Posted
技术标签:
【中文标题】在 MYSQL 数据库中存储包含对象的 javascript 数组?【英文标题】:Storing a javascript array that contains objects in a MYSQL database? 【发布时间】: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 的对象数组。
【问题讨论】:
这取决于你想对数据库中的值做什么。如果您不想查询该字段,您可以将数组转换为 JSON 并将其存储为文本。但是,如果您想对数据进行查询,请在表中创建适当的字段。 为什么不能像存储 JSON 那样只存储数组? 你要找的是JSON ***.com/questions/383692/… 你为什么不看看没有数据库的网络存储。 relationalcloud.com/index.php?title=Database_as_a_Service 【参考方案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()这两个函数吗?又好又简单,正是我喜欢的方式。 是的,就是这样。非常简单,但非常有用。您还可以为不想很好地打包的复杂对象定义自己的打包和解包过程,但是对于像您在这里所做的简单事情,stringify
和 parse
应该可以很好地工作。以上是关于在 MYSQL 数据库中存储包含对象的 javascript 数组?的主要内容,如果未能解决你的问题,请参考以下文章