Question

Utilisation 1.4.1 contre Android sous Windows 7. J'ai un service Web étant l'accès à l'application de titane, le retourne le service JSON comme ceci:

{
    "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"
            }
        ]
    }
}

Cependant, aucune combinaison de eval ou JSON.parse retournera un résultat valide - par exemple:

var contacts = JSON.parse(this.responseText);
alert(contacts.length);

Cela affichera une boîte de dialogue d'alerte avec rien dedans. Le titane appels HttpClient fonctionnent très bien que je peux

Ti.debug(this.responseText) 

sans problème.

Ce JSON valide OK ainsi, dans jsonlint.com par exemple.

Était-ce utile?

La solution

Le JSON semble bien, et bien ... mais parse est la ligne:

alert(contacts.length);

la seule partie qui vous amène à croire qu'il ne fonctionne pas? Parce que vous ne pouvez pas obtenir la longueur d'un objet (VFPData) ... vous obtiendrez undefined / null si l'analyse syntaxique valide est passé ou non. Un meilleur test est:

alert(contacts.VFPData.rows.length);

... puisque vous savez des lignes est un tableau. Ou:

alert(contacts);

Ce qui devrait le signaler est un objet (si analysable) ou null / non définie autrement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top