Javascript 如何在Jquery中从Json响应中提取元素

Javascript 如何在Jquery中从Json响应中提取元素,javascript,jquery,json,asp.net-mvc,Javascript,Jquery,Json,Asp.net Mvc,我有一个ASP.NETMVC应用程序,我得到了服务器使用此代码段的JSON响应 public JsonResult GetVehicleByID(string VehicleID) { db.Configuration.ProxyCreationEnabled = false; var res = from type in db.Vehicles where type.ID == VehicleID

我有一个ASP.NETMVC应用程序,我得到了服务器使用此代码段的
JSON
响应

public JsonResult GetVehicleByID(string VehicleID)
{
    db.Configuration.ProxyCreationEnabled = false;           

    var res = from type in db.Vehicles
              where type.ID == VehicleID
              select new
              {
                  ID = type.ID,
                  RegNo = type.RegNo
              };
    return Json(res, JsonRequestBehavior.AllowGet);
}
上面的代码返回以下
Json
(谷歌邮递员)

我使用以下方法处理响应

我无法从此响应中提取
Type
元素。堆栈溢出中有几个类似的问题&这些问题的解决方案与解析有关。我尝试用两种方式解析,但浏览器日志给出了以下错误

未捕获的语法错误:JSON中位置1处的意外标记o


非常感谢您的帮助,而不是将此问题标记为重复问题。

请尝试
console.log(数据[0]。键入)
。我相信jQuery已经为您将响应解析为JSON,因为您指定了
数据类型:“JSON”
,并且服务器的响应具有正确的
内容类型
头。

正如@smarx所说,jQuery已经为您解码了JSON,因此您可以从数据变量直接访问该类型,但如果没有,您可以使用JS函数parse解析json响应:

var json_data = JSON.parse(data);
console.log(json_data);

在调试器模式下,检查数据..它是否作为对象出现是的。我也试过了。但是同样的输出不需要解析,因为这
数据类型:“json”,
try data[0];或数据[0]。键入。如果这两个选项不起作用,则获取此行不需要的空返回值
var b=$.parseJSON(数据)
它已经被json解析了,因为这一行
数据类型:“json”
它给出了一个输出为“undefined”@Chamith你抓到我的编辑了吗<代码>数据[0]。键入?(来自服务器的响应是一个数组。)只需尝试
console.log(数据[0])
即可查看其中的内容。@Chamith那么来自服务器的JSON响应可能与上面的内容不太一样。
console.log(数据)
向您展示了什么?
function GetVehicle(id) {
    $.ajax({
        async: true,
        url: "GetVehicleByID?VehicleID=" + id,
        cache: false,
        dataType: "json",
        contentType: "application/json",
        success: function (data) {

            //Parsing Method 1
            //var a = jQuery.parseJSON(data);
            //console.log(a.Type);

            //Parsing Method 2
            var b = $.parseJSON(data);
            console.log(b['Type']);
        }
    });
}
var json_data = JSON.parse(data);
console.log(json_data);