我正在使用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;
它会产生强制错误。
答案 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;