C# 在MVC4中合并对象以获得唯一的json对象
我正在尝试以与默认序列化不同的方式序列化对象。 我有这样一个对象列表:C# 在MVC4中合并对象以获得唯一的json对象,c#,json,asp.net-mvc-4,serialization,C#,Json,Asp.net Mvc 4,Serialization,我正在尝试以与默认序列化不同的方式序列化对象。 我有这样一个对象列表: public class PausesByAgentModel { public PausesByAgentModel() { this.Pauses = new Dictionary<string, string>(); } [DisplayName( "Agent" )] public string AgentFullName { get; set;
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; }
}
但我需要暂停的位置和同一个对象的属性一样,比如:
{
"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;
}
公共列表解析数据(PausesByAgentModel模型){
列表结果=新列表();
foreach(model.Keys中的字符串键){
Add(新的{pauses=key,value=model[key]});
}
返回结果;
}
我建议创建一个匿名类型的PausesByAgentModel,并将其json序列化。谢谢@BlaShadow,但这样做,最终的结果是一个pauses数组,我需要得到一个对象,其中所有pauses都作为属性(AgentFullName也作为proerty)。我应该将属性(AgentFullName和pauses)添加到对象中,而不是将对象添加到列表中。
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;
}