2012-04-04 2 views
0

J'essaye d'obtenir le DishName de cette chaîne de json qui est retournée de mon api de php.Réponse de json parse mobile de titane

La chaîne JSON est

["Spicy.com Specials",{"CatID":31,"CatName":"Spicy.com Specials","DishName":"Kashmiri Chicken","DishID":52,"DishDesc":"Cooked with lychees and banana in a lovely sweet and creamy sauce","DishPrice":6.99,"CatDescription":" "},{"CatID":31,"CatName":"Spicy.com Specials","DishName":"Telapia Fish","DishID":51,"DishDesc":"Lightly spiced fillet, a very popular white fish made with peppers, onions and spices in medium sauce","DishPrice":6.99,"CatDescription":" "}, 

Mon code de titane est

var cats = eval('('+this.responseText+')'); 
alert(cats[0]); 

Ce get me est 'Foo.com Promotions' mais je besoin de l'DishName, toute aide serait appréciée Merci

+0

S'il vous plaît assurez-vous de marquer l'une des réponses comme correctes. – flumpb

Répondre

5

Vous récupérerez réellement une chaîne JSON, pas un objet JSON. Il y a une construction en fonction de l'analyse de la chaîne JSON objet JSON:

var response = JSON.parse(this.responseText); 

Obtenir le DishName est alors facile:

var dishname = response[0].DishName; 

Note: Votre JSON affichée semble être incomplète ou c'est un objet JSON invalide.

+0

Merci beaucoup. Vraiment besoin de cette partie sur la façon d'obtenir le dishname. – James

2

La première chose que votre réponse JSON n'est pas valide. Vous pouvez valider votre chaîne JOSN Online here.

Vous pouvez analyser votre réponse JSON à l'aide de la méthode intégrée JSON.parse().

Exemple de code: -

yourLoader.onload = function() 
{ 
    var response = JSON.parse(this.responseText); 
    var dishname = response[0].DishName; 

    Ti.API.log('Your Dish Name:'+dishname);  
}