Titanium中的JSON解析问题

时间:2013-03-09 18:48:12

标签: json parsing titanium tableview titanium-mobile

我正在处理简单任务从url读取数据,该数据是JSON格式并在表中显示这些字段

我写了像

这样的代码
var Win = Titanium.UI.currentWindow;  
//SEARCH BAR
var xhr = Titanium.Network.createHTTPClient();

tableData=[];
Win.open();
xhr.onload = function() {
    alert('res'+this.responseData);
     var json = this.responseText;
    var response = JSON.parse(json);
    //-- Mail was sent
    alert('respoinse length : '+response.result.length);
   tableData=[];
    for (i = 0; i < response.result.length; i++) {
            sresult = response.result[i];
            //alert('City'+ sresult.city);


            var row = Ti.UI.createTableViewRow({
                rowID: i,
                color:'#222',


    left:70, top:44,
    width:360,


                text:sresult.County
            });
            tableData.push(row);
        }

      table.setData(tableData);  


};

var table = Titanium.UI.createTableView({

        top:60,
        data:tableData

   });
    Win.add(table);
//xhr.open('GET', 'https://www.clia.livestockid.ca/CLTS/public/division/CCIA/en/splash_logo.jpg');
xhr.open('GET', 'http://gomashup.com/json.php?fds=geo/usa/zipcode/city/STERLING');
xhr.send();

我在Titanium上运行它 - 第一个显示JSON数据的警报。之后,它没有得到第二个人的警觉,不确定...为什么它没有进入下一步...请帮助我,这是代码中的任何错误或解析问题。

由于 Devendar

1 个答案:

答案 0 :(得分:2)

您提供的网址(http://gomashup.com/json.php?fds=geo/usa/zipcode/city/STERLING)返回的“JSON”无效。 (http://jsonlint.com是用于检查此类事物的有用资源。)它以(开头,以)结尾,如下所示:

({
    "result":[
    {
        "Longitude" : "-071.939375",
        "Zipcode" : "01564",
        "ZipClass" : "STANDARD",
        "County" : "WORCESTER",
        "City" : "STERLING",
        "State" : "MA",
        "Latitude" : "+42.366765"
    }
]}
)

(我从中省略了很多。)

JSON documents[{开头,以对应的]}结束。

上述内容在开头(和最后)时无效,因此您可以在解析之前始终删除它们,但真正的答案是修复Feed。