代码之家  ›  专栏  ›  技术社区  ›  topcool

getjson方法在jquery中返回“undefined”

  •  0
  • topcool  · 技术社区  · 6 年前

    我正在开发一个ASP.NET核心2.1项目,并拥有以下模型

    public class Person
    {
        [Key]
        public int ID { get; set; }
    
        [Required]
        [MaxLength(150)]
        public string Name { get; set; }
    
        [Required]
        [MaxLength(150)]
        public string Family { get; set; }
    
        [Required]
        public int Age { get; set; }
    }
    

    我的项目中有一个Web API控制器,您可以看到它。

    Web API控制器

    [Produces("application/json")]
    [Route("api/People")]
    public class PeopleController : ControllerBase
    {
    
        private readonly ApplicationContext _db;
    
        public PeopleController(ApplicationContext db)
        {
            _db = db;
        }
    
        [HttpGet]
        public IEnumerable<Person> GetPerson()
        {
            return _db.Person;
        }
    }
    

    现在我想从我的Web API控制器中获取数据并显示 index.cshtml

    索引文件

    <h2>List Person</h2>
    
    <table class="table table-bordered" id="list">
      <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Family</th>
        <th>Age</th>
      </tr>
    </table>
    
    <script>
      $.getJSON("/api/People", function(res) {
        $.each(res, function(key, val) {
          alert(val.Age);
          var item =
            "<tr><td>" +
            val.ID +
            "</td><td>" +
            val.Name +
            "</td><td>" +
            val.Family +
            "</td><td>" +
            val.Age +
            "</td><td></td></tr>";
    
          $("#list").append(item);
        });
      });
    </script>
    

    浏览器中“网络”选项卡中的实际JSON

    [{"id":1,"name":"jack","family":"bfd","age":30},{"id":2,"name":"mr john","family":"sobhany","age":36}]
    

    但有一个问题。所有数据都显示在我的视图中,但所有值都是 undefined . 我的密码有什么问题?

    1 回复  |  直到 6 年前
        1
  •  3
  •   T.J. Crowder    6 年前

    正如您看到的JSON,您的JSON序列化程序正在转换面向C的名称,如 Name (注:首字母大写)到面向javascript的字母,如 name (注:小写第一个字母):

    [{"id":1,"name":"jack","family":"bfd","age":30},{"id":2,"name":"mr john","family":"sobhany","age":36}]
    Note ----^^^^^^
    

    javascript是一种区分大小写的语言,因此自然 val.Name undefined 因为没有 名字 属性对 val 你想要 val.name 相反(等等 id , family , bfd , age ……)

    推荐文章