合并对象以获得MVC 4中唯一的json对象
本文关键字:对象 唯一 json MVC 合并 | 更新日期: 2023-09-27 18:05:50
我试图以不同于默认序列化的方式序列化对象。我有一个像这样的对象列表:
public class PausesByAgentModel
{
public PausesByAgentModel()
{
this.Pauses = new Dictionary<string, string>();
}
[DisplayName( "Agent" )]
public string AgentFullName { get; set; }
public Dictionary<string, string> Pauses { get; set; }
}
该对象包含Agent的不同暂停以及字典中每个暂停的时间,因为暂停原因是动态的(键:暂停名称,值:字符串格式的时间)。如果我将这个对象序列化为JsonResult并在我的控制器方法中返回它,我会得到以下json:
{
"data" : [
{
"AgentFullName" : "John Doe",
[
{ "Break": "00:15:31" },
{ "Launch" : "01:01:23" },
{ "Mail" : "00:05:12" }
]
} ]
}
但是我需要暂停的位置就像同一个对象的属性一样,像这样:
{
"data" : [
{
"AgentFullName" : "John Doe",
"Break": "00:15:31",
"Launch" : "01:01:23",
"Mail" : "00:05:12"
} ]
}
我不能改变类的设计。因此,我需要以默认设计的不同方式序列化对象。
有一种方法来合并或序列化对象,如第二个例子?谢谢。
正如@qamar在注释中所说,使用动态类型
public List<dynamic> ParseData(PausesByAgentModel model){
List<dynamic> result = new List<dynamic>();
foreach(String key in model.Keys){
result.Add(new { pauses = key,value = model[key] });
}
return result;
}