Ajax 为什么赢了';t Appcelerator钛移动解析这个JSON?
在Windows7下对Android使用1.4.1。我有一个web服务正在从Tianium应用程序访问,该服务返回JSON,如下所示:Ajax 为什么赢了';t Appcelerator钛移动解析这个JSON?,ajax,titanium,appcelerator,appcelerator-mobile,Ajax,Titanium,Appcelerator,Appcelerator Mobile,在Windows7下对Android使用1.4.1。我有一个web服务正在从Tianium应用程序访问,该服务返回JSON,如下所示: { "VFPData": { "rows": [ { "address1": "Orion House", "address2": "Orion Way", "address3": "Kettering",
{
"VFPData": {
"rows": [
{
"address1": "Orion House",
"address2": "Orion Way",
"address3": "Kettering",
"address4": "Northants",
"comp_name": "Orion Vehicles Leasing",
"contid": 1,
"email": "",
"email2": "",
"fax": "",
"firstname": "David John",
"lastname": "Sear",
"mobile": "",
"phone1": "",
"phone2": "",
"postcode": "NN15 6PE"
},
{
"address1": "Unit 20 Acton Business Park",
"address2": "Acton Lane",
"address3": "London",
"address4": "",
"comp_name": "Orion Vehicles Limited",
"contid": 2,
"email": "Mark@ovl.co.uk",
"email2": "",
"fax": "",
"firstname": "Mark",
"lastname": "Johnson",
"mobile": "0888 566 67879",
"phone1": "0208 209 1359",
"phone2": "",
"postcode": "NW10 7NH"
}
]
}
}
但是,eval或JSON.parse的组合不会返回有效的结果,例如:
var contacts = JSON.parse(this.responseText);
alert(contacts.length);
这将显示一个警报对话框,其中没有任何内容。Tianium HTTPClient调用尽我所能工作正常
Ti.debug(this.responseText)
没问题
例如,在jsonlint.com中,JSON也验证OK。JSON看起来很好,解析也很好。。。但这是一条线:
alert(contacts.length);
唯一让你相信它不起作用的部分是什么?因为无法获取对象的长度(VFPData)。。。无论是否进行了有效的解析,您都将得到undefined/null。更好的测试是:
alert(contacts.VFPData.rows.length);
。。。因为您知道行是一个数组。或:
alert(contacts);
它应该报告它是一个对象(如果已解析)或null/未定义