给定JSON中的这些数据:
[
{
"section": "charges",
"lines": [
{
"cardtype": "MasterCard"
},
{
"sales": "$16.55"
},
{
"items": "10"
},
{
"cardtype": "Visa"
},
{
"sales": "$16.50"
},
{
"items": "39"
},
{
"cardtype": "Diners"
},
{
"sales": "40.00"
},
{
"items": "10"
}
]
}
]我想以属性名称为中心,列出属性值--也许是在DataTable中?
数据以Dictionary<string,object>()的形式收集
我需要按卡片类型汇总销售和商品数量。例如:
+---------------+-------+-------+ | cardtype | sales | items | +---------------+-------+-------+ | Mastercard | 16.55 | 10 | | Visa | 16.50 | 39 | | Diners | 40.00 | 10 | +---------------+-------+-------+ | Total | 73.05 | 59 | <- would be calculated after conversion. +-+
我已经测试了SelectTokens()方法,我可以拉出行的数组,但旋转被证明是困难的,因为字段名称将根据数据来源的不同而不同。
有什么想法吗?
发布于 2018-06-22 03:50:20
尝试使用以下代码
var files = JArray.Parse(JSON);
var recList = files.SelectToken("$..lines");
var str = JsonConvert.SerializeObject(recList);
var regex = new System.Text.RegularExpressions.Regex(@"(\{[^}]+)\},\{([^}]+)\},\{([^}]+)\}");
var output = regex.Replace(str, "$1, $2, $3 }");
System.Data.DataTable dt = (System.Data.DataTable)JsonConvert.DeserializeObject(str, (typeof(System.Data.DataTable)));

https://stackoverflow.com/questions/50973904
复制相似问题