获取json数据响应?

时间:2013-10-28 06:59:07

标签: javascript jquery ajax json

从此

$.ajax(
{
    type: 'post',
    dateType: 'json',
    url: '<?php echo base_url(); ?>buyer/get_address',
    data: { data: $id },
    success: function (resp) {
        alert(resp); //retuns whole result
        alert(resp.address_id); //returns undefind
    }
})

我在浏览器控制台中看到了这个:

{
  "address_id": "10",
  "user_id": "81",
  "address_as": "wholesale",
  "receiver_name": "Karamjeet Singh",
  "address": "street no 1,",
  "zip_code": "11111111",
  "phone": "222222222222",
  "province": "14",
  "regency": "Bali",
  "sub_district": "",
  "status": "1",
  "created": "28 Oct 2013 , 11 : 06 : 06 am",
  "updated": "28 Oct 2013 , 11 : 06 : 06 am"
}

有人能告诉我如何根据个别变量中的响应访问所有数据?

3 个答案:

答案 0 :(得分:4)

不是dateType:'json',它应该是dataType:'json'

  ....
  type : 'post',
  dateType:'json',
 //^^^^^^---here 
  ...

因此你的JSON被视为字符串而不是对象。但是,您可以使用JSON.parse(),但将dateType修改为dataType应该可以正常工作

答案 1 :(得分:1)

纠正@bipen和成功函数显示的错误:

success: function(resp)
{
       alert(resp[0].address_id);
}

工作小提琴:Fiddle

答案 2 :(得分:1)

试试这个,

在视图中:

$('#mybtn').click(function (e) {
            $.ajax({
                type: 'post',
                dateType: 'json',
                url: '../Home/test',
                data: {  },
                dataType: 'json',                
                success: function (resp) {

                    alert(resp.val); //returns undefind
                }
            })
        });

控制器:

public class t
    {
        public int MyProperty { get; set; }
        public string val { get; set; }
    }
[AcceptVerbs(HttpVerbs.Post)]
        public JsonResult test()
        {
            var dataitem = new t { MyProperty =1,val="jeet" };
            return Json(dataitem, JsonRequestBehavior.AllowGet);
        }