【发布时间】:2014-12-23 18:16:51
【问题描述】:
我正在开发一个 ASP.NET MVC 应用程序。我的应用程序正在与第三方 REST 服务交互。该服务在我的 MVC 应用程序的控制器中被调用。服务的结果如下所示:
{
"group@odata.type": "#Collection",
"group": [],
"class@odata.type": "#Collection",
"class":[
{ "total": 111, "value": "A" },
{ "total": 222, "value": "B" },
{ "total": 333, "value": "C" }
],
"status@odata.type": "#Collection",
"status": [
{ "total": 1, "value": "Open" },
{ "total": 20, "value": "Closed" },
{ "total": 51, "value": "Unknown" }
]
}
服务的结果存储在我的模型中的JObject 属性中,名为Results。对于每个数组,我都试图打印出它的键名。然后,我想查看并打印出数组中的每个值和总数。换句话说,上面的 JSON 应该是这样的:
group
class
A - 111
B - 222
C - 333
status
Open - 1
Closed - 20
Unknown - 51
为了做到这一点,我的视图中有以下内容。
foreach (var result in Model.Results)
{
<div></div>
<ul>
@foreach (var subResult in result.?)
{
<li style="padding-left:8px;">@(subResult["value"] + " - " + subResult["total"])</li>
}
</ul>
}
显然以上方法行不通。我的挑战是,我不知道如何:
- 循环遍历 JObject 中的键/值对。
- 确定该值是 JArray 还是另一个 JObject。
如果我使用result.Children(),我不会像我期望的那样得到每个键/值对。同时,result 没有我期望的 Keys 属性。我现在感觉很困。
感谢您提供的任何帮助。节日快乐!
【问题讨论】:
标签: asp.net-mvc json json.net