AS3。将数组存储在本地SQL数据库中

时间:2018-03-19 11:57:05

标签: actionscript-3 air flash-builder

我正在使用Adobe Flash Builder 4.6(AIR APP)开发一个应用程序,其中用户填写表单并在本地SQL数据库中存储名称,电话,地址(以及一些报表数据)等数据。 我的编码都很好,但只有一个问题。除了数据之外,还有一个我试图在本地SQL数据库上存储的数组,但是我的所有尝试都失败了。 我将数组存储在数据库中的text数据类型中,当我访问存储的数组时,它会产生错误。 Cannot convert "[object Object]" to Array。 我不知道是什么问题。 请帮助......谢谢。

我使用嵌套数组的数组,如.. 我的数组是

var ar:Array=["report_name", {label: report_label, number: 5}, [{label: Label1, data: Data1}, {label: Label2, data: Data2}, {label: Label3, data: Data3}]];

现在我将这个数组存储在数据库中,如。

sqlstatement.text ="INSERT INTO table (id, data) VALUES ('', '"+ar+"')";

在此语句中,数据具有TEXT数据类型。 现在当我像

那样访问它时
var array:Array = [];
array = Array(sqlstatement.getResult().data[0].data;

它会产生强制错误。

1 个答案:

答案 0 :(得分:1)

您得到的结果是因为SQL查询基本上是一个字符串,所以它等于

"INSERT INTO table (id, data) VALUES ('', '" + ar.toString() + "')"

您丢失所有通用对象 {...} 和数据结构。

MESepehr 绝对正确,您需要的是 JSON 数据格式,这对您来说可以正常工作只有数字 s, int s,字符串 s,布尔 s,数组 s ,对象 s和 null 那里。

然后,它就像以下一样简单。

商店:

sqlstatement.text = "INSERT INTO table (id, data) VALUES ('', '" + JSON.stringify(ar) + "')";

还原:

var array:Array = JSON.parse(sqlstatement.getResult().data[0].data) as Array;