2012-05-17 4 views
1

У меня возникли проблемы с анализом и отображением событий из групп в API города в моем мобильном приложении appcelerator. (iOS) Это мое групповое событие, которое я хочу показать в таблице. http://api.bandsintown.com/artists/Lucy%20Seven/events.json?api_version=2.0&app_id=LucySeven И это код, который я имею для показывать егоParse json из диапазонов API

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 здесь: http://www.bandsintown.com/api/responses#events-json Я действительно не могу видеть, что это неправильно ... Может быть, им ослепить, чтобы увидеть, что я пропустил? Буду признателен, если кто-то может указать мне в правильном направлении. я попробовал с: data.title титул data.artists.title artists.titel и так далее, но ничего не показали в моем Tableview ..... Thanx // R

+0

Что он делает или не делает это неправильно? Вы получаете сообщение об ошибке? Каков точный текст и строка сообщения об ошибке? –

+0

Ошибка или что-то в этом роде. Я просто не могу ничего показать. Это ничего не покажет в моем столе. –

ответ

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, по крайней мере) и выяснить, как он отличается от того, что вы ожидаете.

+0

Yepp! Это сделал трюк! Я могу получить идентификатор и описание, чтобы показать сейчас! :) Я все еще не могу получить имя или фотографию, но, возможно, это займет некоторое время, обманывая меня, и я получу его. Чёрный человек! Нелегко быть низкобюджетной группой и делать все без бюджета. Ура! –

+0

Имена художников и рисунки должны быть 'json [i] .artists [j] .name' (где' j' - '0' для первого,' 1' для следующего и т. Д.) И '.image_url' соответственно. Удачи! –