0

JSON形式のURLからデータを読み取り、それらのフィールドをテーブルに表示する簡単なタスクに取り組んでいます

私は次のようなコードを書きました

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 データを示す最初のアラートです。その後、2番目のアラートが表示されません...なぜ次のステップに移動しないのですか...コードに間違いがあるか、解析の問題があるかどうかを教えてください。

ありがとうデヴェンダー

4

1 に答える 1

2

指定した URL ( ) によって返された "JSON"http://gomashup.com/json.php?fds=geo/usa/zipcode/city/STERLINGは無効です。( http://jsonlint.comは、そのようなことを確認するための便利なリソースです。)次のように、 a で始まり、 a(で終わります。)

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

(私はそれから多くを省略しました。)

JSON ドキュメント[はまたはで始まり、対応するまたは{で終わります。]}

上記は(先頭と)末尾に がなくても有効であるため、解析する前にいつでもそれらを削除できますが、本当の答えはフィードを修正することです。

于 2013-03-09T18:57:45.053 に答える