我正在建立一个仪表板(在.NET MVC项目中),该仪表板基本上是通过api接收数据并在(某种程度上)精美的视图中显示数据的。
我收到的数据以json格式格式化,并且我知道“ root”的格式(不确定json时这是否是正确的术语,请随时纠正我)。 >
{
response :
{
fields :
[{
name : name1,
},
{
name : name2,
},
...
],
results :
[{
name1 : value1,
name2 : value2
},
{
name1 : value3,
name2 : value4
},
...
]
}
}
如您所见,数组“结果”从一个响应到下一个响应有所不同,名称“ name1”和“ name2”是用户生成的(即不可预测的)。现在,我可以使用此模型反序列化json以提取“字段”数组及其值:
namespace WebApplication1.Models
{
public class Field
{
public string name { get; set; }
}
public class Result
{
}
public class JsonResponse
{
public List<Field> fields { get; set; }
public List<Result> results { get; set; }
}
}
我的问题是:
当我将其传递给视图时,“结果”数组中填充了空的“对象”(由于模型中未描述它们,所以感觉很正常)
results: Array(5)
0: {}
1: {}
2: {}
3: {}
4: {}
我的目标是:
我希望能够在将“结果”的正确描述添加到模型之前(可以从“字段”数组中获取),然后再将其传递给视图,以便所有数据在视图中可用。
尝试过的事情:
将Json作为字符串发送到视图并使用JavaScript进行解析,但这不起作用,因为我们使用模型相关引擎来显示数据
使用dynamicObj解码json,但是我无法将其传递给视图(因为它不是模型)
哭泣,但是(令人惊讶的)它也不起作用。
这可能是我目前忘记的其他事情。
几天来我一直在网上寻找解决方案,但我感到绝望,欢迎任何想法。
谢谢!
答案 0 :(得分:0)
因此,对于以后寻找此功能的任何人,由于找不到解决方案,我最终使用了一种变通方法。
我没有动态模型,而是重新编写了“ Result”类,如下所示:
public class Result
{
public List<KeyValuePair<string, string>> values { get; set; }
}
当我从API接收数据时可以填写。
它使视图中的数据处理更加烦人,但实际上还不错。
P.s。我没有将其标记为答案,因为这只是一个不错的解决方法