使用从ajax返回的JSON数据

时间:2015-04-11 06:18:24

标签: jquery ajax json

我有一个jquery ajax函数,可以正常运行并检索数据。我所经历的是,我似乎无法使用我认为的传统方法从返回的数据中提取单个json数据元素。

$("a[name$='-test']").click(function() {
  var rpc_url = '/history/get_test/' + $(this).attr('id');
  $.ajax({
         url : rpc_url,
        type : 'post',
 contentType : "application/json; charset=utf-8",
    datatype : 'json',
     success : function(data) {
       console.log(data.id);
    }
  }).done(function(data) {
    console.log(data.title);
  });
});

}

原始结果数据格式如下;

[{"id":"1","title":"Test title"}]

然后我修改了我的远程代码,只是将数据返回到数组上下文之外;

{"id":"1","title":"Test title"}

正如您在我的代码中看到的那样,我尝试在成功事件和完成事件中访问数据。 Fiddler显示格式良好的json作为返回的数据。虽然两者都在data.id&的控制台输出中继续未定义。 data.title

那么,我错过了一些明显的东西吗?

感谢。

3 个答案:

答案 0 :(得分:3)

尝试dataType:' json'而不是数据类型:' json' ^^

答案 1 :(得分:0)

首先尝试解析数据:

JSON.parse(data);

答案 2 :(得分:0)

datatype已更改为dataType

如果不评估为JSON对象,则需要手动转换为Object,因此您应该执行以下操作:

console.log(JSON.parse(data)["title"])