Javascript 如何在Jquery中从Json响应中提取元素
我有一个ASP.NETMVC应用程序,我得到了服务器使用此代码段的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
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);