这是我的代码
public class DetailRequest
{
public DetailRequest(string IDs, string Names, string Amounts)
{
REQDTL = new List<Detail>();
Detail detail = new Detail();
detail.ID = IDs;
detail.NAME = Names;
detail.AMOUNT = Amounts;
REQDTL.Add(detail);
}
public List<Detail> REQDTL { get; set; }
public class Detail
{
[Description("ID")]
public string ID { get; set; }
[Description("NAME")]
public string NAME { get; set; }
[Description("AMOUNT")]
public string AMOUNT { get; set; }
}
}
并且
private static string _Serialize<T>(T entity)
{
return JsonConvert.SerializeObject(entity);
}
我在JSON转换后得到以下结构
{
"REQDTL":[
{
"ID":"148488,148489,148486",
"NAME":"Test1,Test2,Test3",
"AMOUNT":"500,600,700"
}
]
}
但我想要求如下结构
{
"REQDTL":[
{
"ID":"148488",
"NAME":"Test1",
"AMOUNT":"500"
},
{
"ID":"148489",
"NAME":"Test2",
"AMOUNT":"600"
},
{
"ID":"148486",
"NAME":"Test3",
"AMOUNT":"700"
}
]
}
答案 0 :(得分:1)
我认为你应该修改DetailRequest
构造函数:
public DetailRequest(string IDs, string Names, string Amounts)
{
REQDTL = IDs.Split(',').Zip(Names.Split(','), (id, name) => new {id, name})
.Zip(Amounts.Split(','), (x, amount) => new Detail
{
ID = x.id,
NAME = x.name,
AMOUNT = amount
}).ToList();
}
用法
var entity = new DetailRequest("148488,148489,148486", "Test1,Test2,Test3", "500,600,700");
var res = JsonConvert.SerializeObject(entity);