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