将json字符串从控制器呈现到mvc视图
我的json字符串如下所示:将json字符串从控制器呈现到mvc视图,json,asp.net-mvc,Json,Asp.net Mvc,我的json字符串如下所示: "[{\"StartTime\":\"09:00\",\"Dates\":\"05-28-2015\",\"Code\":\"DF\",\"LocationCode\":\"NY\"},{\"StartTime\":\"09:30\",\"Dates\":\"05-28-2015\",\"Code\":\"DF\",\"LocationCode\":\"NY\"},{\"StartTime\":\"10:00\",\"Dates\":\"05-28-2015\",\
"[{\"StartTime\":\"09:00\",\"Dates\":\"05-28-2015\",\"Code\":\"DF\",\"LocationCode\":\"NY\"},{\"StartTime\":\"09:30\",\"Dates\":\"05-28-2015\",\"Code\":\"DF\",\"LocationCode\":\"NY\"},{\"StartTime\":\"10:00\",\"Dates\":\"05-28-2015\",\"Code\":\"DF\",\"LocationCode\":\"NY\"},{\"StartTime\":\"10:30\",\"Dates\":\"05-28-2015\",\"Code\":\"DF\",\"LocationCode\":\"NY\"},{\"StartTime\":\"11:30\",\"Dates\":\"05-28-2015\",\"Code\":\"DF\",\"LocationCode\":\"NY\"}]"
我需要在视图中解析这个json字符串,并在表中显示数据。
我是json新手。任何帮助都将不胜感激。谢谢
$("#divLoad").load("GetAvailableTimeSlots?strProvider=" + provider + "&strFrom=" + from, function (data) {
var newStr = data.replace('"[', '').replace(']"', '').replace('[', '').replace(']', '');
var dataArr = newStr.split('},{');
var jsonArr = new Array(dataArr.length);
for (var i = 0; i < dataArr.length; i++) {
dataArr[i] = '{' + dataArr[i] + '}';
var dataElem = dataArr[i].replace('{{', '{').replace('}}', '}');
var jsonElem = "'" + dataElem + "'";
jsonArr[i] = JSON.parse(jsonElem);
}
$(this).html(jsonArr);
});
$(“#divLoad”).load(“GetAvailableTimeSlot?strProvider=“+provider+”&strFrom=“+from”,函数(数据){
var newStr=data.replace(“[”,”).replace(“]”,”).replace(“[”,”).replace(“]”,”);
var dataArr=newStr.split('},{');
var jsonArr=新数组(dataArr.length);
对于(变量i=0;i
如果使用jQuery,可以使用jQuery.parseJSON()方法
只需调用JSON.parse(data)
并操作javascript对象,而不是执行容易出错的字符串操作
function (data) {
var locations = JSON.parse(data);
var table = $("<ul>");
for (var i = 0; i < locations.length; i++) {
var row = $("<li>").text(locations[i].StartTime + " " + locations[i].Dates + " " ...);
table.append(row);
}
$("#divLoad").empty().append(table); // $(this) won't work
}
功能(数据){
var locations=JSON.parse(数据);
变量表=$(“”);
对于(变量i=0;i”).text(位置[i].StartTime+“”+locations[i].Dates+“”…);
表.追加(行);
}
$(“#divLoad”).empty().append(table);//$(此)不起作用
}
本例使用的是无序列表,但您可以轻松地将其替换为表标记
以下是在Chrome开发工具中解析后,它与console.log(locations)
的外观:
…以什么形式显示数据您应该提供一些代码来显示您到目前为止所尝试的内容。我想在表中显示数据。我尝试使用上述代码只是在div中显示值。代码在“JSON.parse(jsonElem)”:意外标记处出错。在调试js时,jsonElem出现了双引号,因此出现了错误。只需调用
JSON.parse(data)
并操作javascript对象,而不是进行字符串操作——这样更不容易出错,也不会像您的注释中那样出现错误。我不会在位置上得到任何结果。var locations=JSON.parse(数据);我认为JSON.parse(data)没有解析数据我从你的帖子中获取了你的字符串,[{“StartTime\:“09:00\”,…,并用它代替了数据,解析正确。你尝试解析时它会出错吗?我知道了。我正在获取数据。非常感谢。