我正在从网页访问者收集数据并将其放入我创建的JavaScript对象中。但后来我希望能够引用他们输入的数据。
我可以访问MySQL数据库,所以有没有办法在那里存储这个对象?
我想尝试将其保留为对象格式,而不是将其分解为单独的部分。
答案 0 :(得分:13)
将对象的JSON.stringified
版本存储在数据库中,然后在希望再次返回该对象时JSON.parse
。它看起来像这样:
var myObj = {some: data, other: stuff};
var myObjString = JSON.stringify(myObj);
// store string in mySQL database here
// load string from database
var myJSONString = //mySQL database call
var myLoadedObj = JSON.parse(myJSONString);
答案 1 :(得分:10)
不,你不能,至少不是这样。
您可以将其序列化为字符串。如果它完全由数组,简单对象和JSON format支持的其他数据类型组成(如果它是用户提供的数据(如果上传二进制文件则主要例外,它可能会这样做)),那么你可以使用JSON序列化程序来执行此操作。现代浏览器为此目的提供JSON object,json2.js将为旧浏览器提供填充。然后,您可以将该字符串存储在数据库中。
不将它分成单独的部分确实会丢掉使用关系数据库的许多优点(即关系和执行有用搜索的能力)。
答案 2 :(得分:0)
答案 3 :(得分:0)
使用varchar或text数据类型将其作为JSON对象存储在字段中。
答案 4 :(得分:0)
是的,实际上可以做到。
con.connect(function(err){
var sql = "INSERT INTO books SET ?"; //books -- <tablename>
if(err) console.dir("Error: "+err.message);
var values = {
"bname": "Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future",
"author": "Elon Musk",
"genre": "Technology",
"bookcount": "5"
};
con.query(sql, [values], function(err, result){
if (err) throw err;
else console.dir("Successfully inserted the row in table.");
console.log(result);
});
});
但是,与此同时,您必须满足这些要点,
value
应该是对象,即value = {“ name”:“ property”} 希望有帮助。