我有以下动态对象需要序列化为JSON字符串
dynamic salesInvoice = new
{
invoiceHeaderEntity,
InvoiceLines = (from p in invoiceLinesEntities
select new
{
p,
}).ToList()
};
string invoiceJson = JsonConvert.SerializeObject(salesInvoice);
现在invoiceJson
内容中包含以下JSON字符串
{
"invoiceHeaderEntity":{
"InvoiceNo":22,
"InvoiceTotal":100.00,
},
"InvoiceLines":[
{
"p":{
"Quantity":1.00,
"LineTotal":50.00,
"UnitPrice":50.00,
"Description":null,
"LineOrder":1
},
},
{
"p":{
"Quantity":1.00,
"LineTotal":50.00,
"UnitPrice":50.00,
"Description":null,
"LineOrder":2
},
}
],
}
但是我想要的是一个简单的JSON字符串,如下所示,因此删除对象名称invoiceHeaderEntity
和p
。
无需从对象invoiceHeaderEntity
和p
显式地手动写入每个属性名称
{
"InvoiceNo":22,
"InvoiceTotal":100.00,
"InvoiceLines":[
{
"Quantity":1.00,
"LineTotal":50.00,
"UnitPrice":50.00,
"Description":null,
"LineOrder":1
},
{
"Quantity":1.00,
"LineTotal":50.00,
"UnitPrice":50.00,
"Description":null,
"LineOrder":2
}
],
}
我无法手动执行以下操作,因为invoiceHeaderEntity
和invoiceLinesEntities
也是动态的,因此其内容会不时更改
dynamic salesInvoice = new
{
invoiceHeaderEntity.InvoiceNo,
invoiceHeaderEntity.InvoiceTotal,
InvoiceLines = (from p in invoiceLinesEntities
select new
{
p.Quantity,
p.LineTotal,
...
}).ToList()
};
string invoiceJson = JsonConvert.SerializeObject(salesInvoice);
更新: 实际上,我有一个大型系统,其中包含数百个对象,这些对象包含其他对象的子列表,并且我们希望将应用程序中的每个SAVE / UPDATE / DELETE命令记录到上面提到的SIMPLE JSON格式的文件中,而无需明确地编写每个对象属性名称来获得这种格式,因为继续写属性名称可能会在频繁更新的代码上打开许多错误,开发人员可能会忘记在代码中更新此区域而没有任何警告