C# 返回未读取的JSON对象
我想显示我的数据和其中的行数。 我返回的是json,其中有一些错误C# 返回未读取的JSON对象,c#,json,ajax,C#,Json,Ajax,我想显示我的数据和其中的行数。 我返回的是json,其中有一些错误 public JsonResult NewData() { List<mydatasample> mydata = new List<mydatasample>(); mydata.Add(new mydatasample { bookName = " Book 1 ", publisherName = " Name1 ", publishYear = 2
public JsonResult NewData()
{
List<mydatasample> mydata = new List<mydatasample>();
mydata.Add(new mydatasample { bookName = " Book 1 ", publisherName = " Name1 ", publishYear = 2018 });
mydata.Add(new mydatasample { bookName = " Book 2 ", publisherName = " Name2 ", publishYear = 2018 });
mydata.Add(new mydatasample { bookName = " Book 3 ", publisherName = " Name3 ", publishYear = 2018 });
mydata.Add(new mydatasample { bookName = " Book 4 ", publisherName = " Name4 ", publishYear = 2018 });
mydata.Add(new mydatasample { bookName = " Book 5 ", publisherName = " Name5 ", publishYear = 2018 });
mydata.Add(new mydatasample { bookName = " Book 6 ", publisherName = " Name6 ", publishYear = 2018 });
mydata.Add(new mydatasample { bookName = " Book 7 ", publisherName = " Name7 ", publishYear = 2018 });
mydata.Add(new mydatasample { bookName = " Book 8 ", publisherName = " Name8 ", publishYear = 2018 });
mydata.Add(new mydatasample { bookName = " Book 9 ", publisherName = " Name9 ", publishYear = 2018 });
mydata.Add(new mydatasample { bookName = " Book 10 ", publisherName = " Name10 ", publishYear = 2018 });
int rowcount= mydata.Count;
return Json(new { mydata = mydata,rowcount = rowcount}, JsonRequestBehavior.AllowGet);
}
public JsonResult NewData()
{
List mydata=new List();
添加(新的mydatasample{bookName=“Book 1”,publisherName=“Name1”,publishYear=2018});
mydata.Add(新的mydatasample{bookName=“Book 2”,publisherName=“Name2”,publishYear=2018});
mydata.Add(新的mydatasample{bookName=“Book 3”,publisherName=“Name3”,publishYear=2018});
添加(新的mydatasample{bookName=“book4”,publisherName=“Name4”,publishYear=2018});
mydata.Add(新的mydatasample{bookName=“Book 5”,publisherName=“Name5”,publishYear=2018});
添加(新的mydatasample{bookName=“Book 6”,publisherName=“Name6”,publishYear=2018});
添加(新的mydatasample{bookName=“Book 7”,publisherName=“Name7”,publishYear=2018});
mydata.Add(新的mydatasample{bookName=“Book 8”,publisherName=“Name8”,publishYear=2018});
mydata.Add(新的mydatasample{bookName=“Book 9”,publisherName=“Name9”,publishYear=2018});
mydata.Add(新的mydatasample{bookName=“Book 10”,publisherName=“Name10”,publishYear=2018});
int rowcount=mydata.Count;
返回Json(新的{mydata=mydata,rowcount=rowcount},JsonRequestBehavior.AllowGet);
}
这是我的ajax代码
错误来了,它无法读取
e[j].书名,e[j].出版社名称,e[j].出版年份
具体地说,我的错误是
SomeActionMethod:59未捕获类型错误:无法读取属性
未定义的“bookName”
at Object.success(SomeActionMethod:59)
着火时(jquery-1.10.2.js:3062)
在Object.fireWith[as resolveWith](jquery-1.10.2.js:3174)
完成时(jquery-1.10.2.js:8249)
在XMLHttpRequest.callback(jquery-1.10.2.js:8792)
$.ajax(
{
cache:false,
键入:“获取”,
url:hosturl,
成功:职能(e)
{
var var1=“”;
var1+=“书名出版商名称出版年份”;
对于(var j=0;j<10;j++)
{
//这一行出现了错误
var1++++++++e[j]。书名+++++++e[j]。publisherName++++++++e[j]。publishYear++;
}
var1+=“”;
$(“#t1”)。追加(var1);
var rowCount=$(“#t1”).find.length;
对于(var j=1;j您需要首先将返回的对象转换为javascript对象,因为默认返回的对象是JSON字符串值,而不是可以通过[]访问的对象
考虑以下代码段:
$.ajax(
{
cache: false,
type: "GET",
url: hosturl,
success: function (e)
{
var data = JSON.parse(e);
// now you can call something like this
console.log(data[0].bookName);
}
});
现在您有了一个对象,您可以根据原始问题循环并从中提取信息。您可以创建一个json对象,如下所示:
{
"mydata":[
{
"bookName":" Book 1 ",
"publisherName":" Name1 ",
"publishYear":2018
},
{
"bookName":" Book 2 ",
"publisherName":" Name2 ",
"publishYear":2018
},
...
],
"rowcount":10
}
您必须修改您的循环:
for (var j = 0; j < e.rowcount; j++) {
var1 += "<tr>" + "<td>" + e.mydata[j].bookName + "</td>" + "<td>" + e.mydata[j].publisherName + "</td>" + "<td>" + e.mydata[j].publishYear + "</td>" + "</tr>";
}
for(var j=0;j
尝试使用e.mydata[j].bookname如果您将console.log(e);
添加到成功处理程序的顶部,然后查看控制台,您可能会更清楚它为什么不起作用。
for (var j = 0; j < e.rowcount; j++) {
var1 += "<tr>" + "<td>" + e.mydata[j].bookName + "</td>" + "<td>" + e.mydata[j].publisherName + "</td>" + "<td>" + e.mydata[j].publishYear + "</td>" + "</tr>";
}