Вопрос

Использование 1.4.1 против Android под Windows 7. У меня есть доступ к веб-службу из приложения Titanium, сервис возвращает 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.BARSE вернет действительный результат - например:

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

Это покажет диалог оповещения ни с чем в этом. Титановые вызовы HttpClient работают нормально, как я могу

Ti.debug(this.responseText) 

без проблем.

Это json проверяет хорошо, например, в jsonlint.com, например.

Это было полезно?

Решение

JSON выглядит хорошо, и разрабатывает нормально ... но это линия:

alert(contacts.length);

Единственная часть, которая ведет вас, чтобы поверить, что это не работает? Поскольку вы не можете получить длину объекта (VFPDATA) ... Вы получите undefined / NULL, что произошло ли действительное разборы или нет. Лучший тест:

alert(contacts.VFPData.rows.length);

... Поскольку вы знаете, строки - это массив. Или:

alert(contacts);

Который должен сообщать о том, что это объект (если проанализирован) или NULL / undefined в противном случае.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top