質問

私はチタンアプリケーションからアクセスされたWebサービスを持っているWindows 7の下のAndroidに対して1.4.1を使用して、サービスはこのようにJSONを返します:

{
    "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);

それはそれで何も警告ダイアログが表示されます。私は

できる限りチタンHTTPClientの呼び出しが正常に動作しています
Ti.debug(this.responseText) 
何の問題もなく、

JSONは、例えばjsonlint.comでは、同様にOKを検証する。

役に立ちましたか?

解決

JSONは罰金を見て、罰金を解析し...しかし、ある行ます:

alert(contacts.length);

リードがあなたはそれが動作していないと信じてすることを一部だけ?あなたがオブジェクト(VFPData)の長さを取得することはできませんので...あなたは、有効な解析が起こったかどうか未定義/ヌルを取得します。より良いテストがあります:

alert(contacts.VFPData.rows.length);
あなたが行を知っているので、 ...配列です。それともます:

alert(contacts);
それはオブジェクト(解析された場合)、またはnullです報告しなければならない。 /それ以外の場合は未定義ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top