如何在视图中显示反序列化嵌套 JSON 对象的属性?
How to display properties from a deserialized, nested JSON object in your view?
我制作了一个模型来接受来自 Jira API 的 JSON 数据。我使用 Newtonsoft.Json 反序列化 JSON 数据并将其保存在名为 jiraObj 的对象中。如果我在 return View(jiraObj)
行放置一个断点,我可以看到我的对象已成功填充信息。
我不确定如何在我的视图中显示信息。我试过调用控制器 class 和 属性 名称,但我似乎只能达到模型中的上层 class。
这里我用Jira收集信息API。
我调用我的 class Jira 来创建一个对象来保存来自我的模型的预期信息。
request.AddHeader("Authorization", "Basic " + Base64Encode(accessToken));
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string
Jira jiraObj = JsonConvert.DeserializeObject<Jira>(content);
ViewBag.Title = "Home Page";
return View(jiraObj);
这是我的模型文件中前几个 classes 的片段。
public class Jira
{
public ICollection<Body> Issues { get; set; }
}
public class Body
{
public int Id { get; set; }
public string Key { get; set; }
public Fields Fields { get; set; }
}
public class Fields
{
public Status Status { get; set; }
public Description Description { get; set; }
public string Summary { get; set; }
public Assignee Assignee { get; set; }
public Creator Creator { get; set; }
public Reporter Reporter { get; set; }
}
我的模型很嵌套,我好像只能访问public ICollection<Body> Issues { get; set; }
我只用一个 class 就可以轻松访问属性。折腾了几个小时好像想不通。
编辑:查看代码,尝试了以下许多不同的迭代
@model IEnumerable<TestJira.Models.Jira>
@foreach (var item in Model)
{
<div>
@item.Summary
</div>
}
编辑 2:以下代码有效。
@model TestJira.Models.Jira
@Model.Issues.ToList()
@foreach (var Issue in Model.Issues)
{
<div>@Issue.Fields.Summary</div>
}
我会更改视图中的模型声明,使其不可枚举,并使用 for 循环。:
@model TestJira.Models.Jira
@for (var i = 0; i < Model.Issues.Count; i++)
{
<div>
Model.Issues[i].Summary
</div>
}
我制作了一个模型来接受来自 Jira API 的 JSON 数据。我使用 Newtonsoft.Json 反序列化 JSON 数据并将其保存在名为 jiraObj 的对象中。如果我在 return View(jiraObj)
行放置一个断点,我可以看到我的对象已成功填充信息。
我不确定如何在我的视图中显示信息。我试过调用控制器 class 和 属性 名称,但我似乎只能达到模型中的上层 class。
这里我用Jira收集信息API。 我调用我的 class Jira 来创建一个对象来保存来自我的模型的预期信息。
request.AddHeader("Authorization", "Basic " + Base64Encode(accessToken));
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string
Jira jiraObj = JsonConvert.DeserializeObject<Jira>(content);
ViewBag.Title = "Home Page";
return View(jiraObj);
这是我的模型文件中前几个 classes 的片段。
public class Jira
{
public ICollection<Body> Issues { get; set; }
}
public class Body
{
public int Id { get; set; }
public string Key { get; set; }
public Fields Fields { get; set; }
}
public class Fields
{
public Status Status { get; set; }
public Description Description { get; set; }
public string Summary { get; set; }
public Assignee Assignee { get; set; }
public Creator Creator { get; set; }
public Reporter Reporter { get; set; }
}
我的模型很嵌套,我好像只能访问public ICollection<Body> Issues { get; set; }
我只用一个 class 就可以轻松访问属性。折腾了几个小时好像想不通。
编辑:查看代码,尝试了以下许多不同的迭代
@model IEnumerable<TestJira.Models.Jira>
@foreach (var item in Model)
{
<div>
@item.Summary
</div>
}
编辑 2:以下代码有效。
@model TestJira.Models.Jira
@Model.Issues.ToList()
@foreach (var Issue in Model.Issues)
{
<div>@Issue.Fields.Summary</div>
}
我会更改视图中的模型声明,使其不可枚举,并使用 for 循环。:
@model TestJira.Models.Jira
@for (var i = 0; i < Model.Issues.Count; i++)
{
<div>
Model.Issues[i].Summary
</div>
}