Ajax 对json数据使用eval()
我试图在json格式的数据集上使用eval来检索属性值,即Ajax 对json数据使用eval(),ajax,django,json,eval,Ajax,Django,Json,Eval,我试图在json格式的数据集上使用eval来检索属性值,即 [{"item_one":1, "item_two": 2, "item_three": 3}] 我在django中使用dajax进行ajax调用,如下所示: @dajaxice_register def get_current_id(request): home_timeline = oauth_req( 'http://api.twitter.com/1/statuses/home_timeline.json?co
[{"item_one":1, "item_two": 2, "item_three": 3}]
我在django中使用dajax进行ajax调用,如下所示:
@dajaxice_register
def get_current_id(request):
home_timeline = oauth_req(
'http://api.twitter.com/1/statuses/home_timeline.json?count=1',
settings.TWITTER_TOKEN_KEY,
settings.TWITTER_TOKEN_SECRET
)
return simplejson.dumps({'home_timeline': home_timeline })
它在回调时获取以下内容:
function get_current_id_callback(data){
if(data==Dajaxice.EXCEPTION){
alert('Error! Something happens!');
}
else{
console.log(data.home_timeline);
}
}
我不明白为什么这会给我不明确的印象:
console.log(eval(data.home_timeline.item_one))
什么是正确的方法来检索项目1的值
谢谢。如果
数据
仍然是一个字符串,那么您需要eval(data)
(或者按照@cHao的建议,解析它)来生成一个能够被取消引用的javascript对象
如果它不仅仅是一个字符串,就不应该首先求值。退出该操作。现在常用的每种语言都有一个内置的或随时可用的JSON解析器。尤其是Javascript。查看
JSON.parse
。它比eval
更安全、更高效。您的框架甚至可能已经在为您做这件事了。@cHao,使用JSON.parse仍然不能正确地解析data.home\u timeline.item\u one
给出了:Uncaught SyntaxError:Unexpected token u get\u current\u id\u callback:8000/:64
,即:console.log(JSON.parse(data.home\u timeline.id\u str))代码>谢谢。当你说console.log(data)
(或者可能是console.log(data.home\u timeline)
)时,这会给你什么?这会给我json输出。然后json.parse
会给你json表示的对象,如果它是有效的json.eval和json.parse在迭代对象时都起作用,它包含一个索引-不必迭代一个索引。这是有效的:$.each(eval(data.home_timeline)、函数(i,item){console.log(item.id_str);})代码>,这同样有效:$.each(JSON.parse(data.home_timeline)、函数(i,item){console.log(item.id_str);})代码>。那么,为什么没有$each()
,它就不能工作呢?谢谢,我想好了:parsed=JSON.parse(data.home\u timeline);console.log(已解析[0].id\u str)代码>