Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 返回未读取的JSON对象_C#_Json_Ajax - Fatal编程技术网

C# 返回未读取的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

我想显示我的数据和其中的行数。 我返回的是json,其中有一些错误

    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>";
}