1

AppceleratorモバイルアプリでTownのAPIのBandsからのイベントを解析して表示するのに問題があります。(iOS)これは私がテーブルに表示したい私のバンドイベントです。 http://api.bandsintown.com/artists/Lucy%20Seven/events.json?api_version=2.0&app_id=LucySeven そしてこれは私がそれを表示するために持っているコードです

var win = Ti.UI.currentWindow;

win.hideNavBar();

Ti.UI.backgroundColor = '#050505';

var url = "http://api.bandsintown.com/artists/Lucy%20Seven/events.json?      api_version=2.0&app_id=LucySeven"

var table = Ti.UI.createTableView({

        backgroundColor: '#050505',
        separatorColor:'#110000',
    });
var tableData = [];
var json, artists, name, picture, title, description;

var xhr = Ti.Network.createHTTPClient({
onload: function() {
// Ti.API.debug(this.responseText);

json = JSON.parse(this.responseText);
for (i = 0; i < json.data.length; i++) {
    data = json.data[i];
    row = Ti.UI.createTableViewRow({
        height:'100dp',
        backgroundColor: '#050505',
        separatorColor:'#110000',
    });
  var  name = Ti.UI.createLabel({
        text: title,
        font:{
            fontSize:'17dp',
        fontWeight:'bold'
    },
    height:'auto',
    left:'90dp',
    top:'20dp',
    color:'#eee',
    touchEnabled:true
    });
    row.add(name);


        var  start = Ti.UI.createLabel({
        text:   description,
        font:{
            fontSize:'12dp'
        },
    height:'auto',
    left:'90dp',
    bottom:'20dp',
    color:'#eee',
    touchEnabled:true
    });
    row.add(start);


  // Avatar
            var img = Ti.UI.createImageView({
                image   : thumb_url ,
                width   : 70,
                height  : 70,
                top     : 5,
                bottom  : 5,
                borderRadius: 5,
                borderColor: '#eee',
                left    : 5
            });
            row.add(img);


    tableData.push(row);
    }

table.setData(tableData);
},
onerror: function(e) {
Ti.API.debug("STATUS: " + this.status);
Ti.API.debug("TEXT:   " + this.responseText);
Ti.API.debug("ERROR:  " + e.error);
alert('There was an error retrieving the remote data. Try again.');
},
timeout:5000
});

xhr.open("GET", url);
xhr.send();

ここにjsonのAPI応答があります: http ://www.bandsintown.com/api/responses#events-json 私は本当に何が悪いのかわかりません...多分私が見逃したものを見るために盲目になっていますか?誰かが私をこれについて正しい方向に向けることができれば幸いです。data.title data.artists.title title Artists.titelなどで試しましたが、テーブルビューに何も表示されませんでした..... Thanx // R

4

1 に答える 1

1

this.responseText価値とjson後の価値は何JSON.parseですか?JSON応答ではdataプロパティが表示されないため、何json.dataが想定されているのかわかりません。また、Ti.UI.createLabelあなたは与えますtest: titleが、title決して価値を与えられません。

for私はあなたがあなたのループで本当に欲しいものはこれだと思います:

json = JSON.parse( this.responseText ); // `json` will be an array of objects

for (i = 0; i < json.length; i++) {
  data = json[ i ];
  // ...

  var name = Ti.UI.createLabel( {
    text: data.title,
    // ...
  } );
}

これをデバッグするための鍵は、多くのものをデバッグすることと同じです。各ステップでどのデータがあるかを調べ(Titaniumを使用したことはありませんがconsole.log、少なくとも次のようなものが必要です)、予想とどのように異なるかを調べます。 。

于 2012-05-17T21:07:06.953 に答える