使用$ .GetJSON()函数检索类对象的数组

时间:2014-12-22 08:36:08

标签: asp.net-mvc-5 asp.net-ajax getjson asp.net-web-api2

我已经实现了一个WEB API 2控制器,它返回一个类对象的数组。现在,我想在我的MVC 5应用程序中使用此API。为此,我发现可以使用getJSON方法。但问题是我不知道如何从getJSON方法获取一个类对象数组。另外,根据返回的对象数量,我必须在UI上创建相同数量的网格。欢迎任何指针,链接或示例代码。

3 个答案:

答案 0 :(得分:2)

下面的示例将帮助您使用网页API并在页面中使用该数据。

控制器: -

public class TestController : ApiController
    {
      public IEnumerable<temp> Get()
        {
          var context = new Test();
          return context.temps;
        }
    }

型号&amp;数据库的DbContext类: -

[Table("temp")]
public class temp
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Column(TypeName = "numeric")]
    public decimal tempid { get; set; }

    [Required]
    [StringLength(50)]
    public string name { get; set; }

    [Required]
    [StringLength(50)]
    public string address { get; set; }
}

public class Test : DbContext
 {
    public Test()
        : base("name=Test")
    {
    }
    public virtual DbSet<temp> temps { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<temp>()
            .Property(e => e.tempid)
            .HasPrecision(18, 0);
    }
}

查看方: -

<html>
  <head>
    <script src="~/Scripts/js/jquery-1.10.1.min.js"></script>
    <script>
       $(document).ready(function()
        {
            $.getJSON("http://localhost:51197/api/Test", function (data) {
            $.each(data, function (key, val) {
                $("<table border='1'><tr><td>" + val.name + "</td><td>" + val.address
                       + "</td></tr></table>").appendTo("#tbPerson");
            });
         });
       });
    </script>
</head>
<body>
  <div id="tbPerson">
  </div>
</body>
</html>

答案 1 :(得分:1)

我不知道这是否是您正在寻找的,但在解析具有多个对象的json-string时,您可以简单地使用每个对象。 在循环内部,您可以创建网格,因此您将依赖于对象的数量。

$.each(jsonstring, function (i, object) {
/*create your grid and handle your object here*/
/*access attributes of your object with object.attributname*/
}

这是你在找什么?

答案 2 :(得分:1)

假设您尝试在JavaScript中使用API​​。

有两种方法可以使用相同的

  1. $。的getJSON()
  2. $。AJAX() 详细信息请查看:Difference Between $.getJSON() and $.ajax() in jQuery
  3. JavaScript非常开放,灵活,面向对象。 因此,您从上面得到的结果将是JavaScript对象,您可以使用相同的via循环来获得预期的结果。

    function example() {
    
        var data = [{ "Roll": "1", "Name": "A" }, { "Roll": "2", "Name": "B" }, { "Roll": "3", "Name": "C" }];
    
        for (var index = 0; index < data.length; index++) {
            var item = data[index];
            // Play with your data item for eg
            console.log(item.Roll);
            console.log(item.Name);
        }
    
        // JSON being javascript object
        // you can attach properties at run time too
        data.Source = "AJAXCall Blah";
    
       // Later in JS same can be used in appropriate scope.
        console.log(data.Source);
    };
    
    
        $.each(dataReturnedFromAJAXCall,function(item){
        // play with your data here
    
    });
    

    How do I iterate over a JSON structure?
    http://www.w3schools.com/js/js_json.asp