2012-04-04 44 views
0

我想从这个json字符串中从我的php api返回DishName。钛手机解析json响应

JSON字符串是

["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":" "}, 

我的二码为

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

这让是我 'Foo.com特价' 不过,我需要的DishName,任何帮助将不胜感激 感谢

+0

请务必将其标记为正确的答复之一。 – flumpb 2012-04-05 19:36:50

回答

5

您实际上会取回一个JSON字符串,而不是JSON对象。有一个在功能,构建了解析JSON字符串JSON对象:

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

获取DishName那么容易:

var dishname = response[0].DishName; 

注:您的当前显示的JSON似乎是不完整的,或者以其他方式它是一个无效的JSON对象。

+0

非常感谢。真的需要那部分关于如何得到这道菜的名字。 – James 2012-05-16 15:52:19

2

您的JSON响应的第一件事是无效的。您可以验证您的JOSN字符串Online here

您可以通过内置方法JSON.parse()解析您的JSON响应。

示例代码: -

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

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