我想通過按類別、商家和優惠券對串列進行分組來將以下串列轉換為 JSON 結果(JSON 結果也如下所示)。我嘗試使用 LINQ 查詢來解決這個問題,但無法做到。
需要將以下串列轉換為 JSON 結果。
var list = new List<Data>() {
new Data { categoryCode = "1", categoryName = "A", merchantId = "1", mechantName = "Shehan", voucherId = "200", voucherDescription = "Voucher - 200"},
new Data { categoryCode = "1", categoryName = "A", merchantId = "1", mechantName = "Shehan", voucherId = "300", voucherDescription = "Voucher - 300"},
new Data { categoryCode = "1", categoryName = "A", merchantId = "2", mechantName = "Ashen", voucherId = "200", voucherDescription = "Voucher - 200"},
new Data { categoryCode = "2", categoryName = "B", merchantId = "1", mechantName = "Shehan", voucherId = "200", voucherDescription = "Voucher - 200"},
new Data { categoryCode = "2", categoryName = "B", merchantId = "1", mechantName = "Shehan", voucherId = "300", voucherDescription = "Voucher - 300"},
new Data { categoryCode = "2", categoryName = "B", merchantId = "2", mechantName = "Ashen", voucherId = "200", voucherDescription = "Voucher - 200"},
new Data { categoryCode = "2", categoryName = "B", merchantId = "2", mechantName = "Ashen", voucherId = "300", voucherDescription = "Voucher - 300"},
};
這是串列中使用的資料模型。
class Data
{
public string categoryCode { get; set; }
public string categoryName { get; set; }
public string merchantId { get; set; }
public string mechantName { get; set; }
public string voucherId { get; set; }
public string voucherDescription { get; set; }
}
需要從給定串列中獲取以下 JSON 結果。
"Data": [
{
"categoryCode":"1",
"categoryName":"A",
"merchants":[
{
"merchantId":"1",
"merchantName":"Shehan",
"vouchers":[
{
"Id":"200",
"description":"Voucher - 200"
},
{
"Id":"300",
"description":"Voucher - 300"
}
]
},
{
"merchantId":"2",
"merchantName":"Ashen",
"vouchers":[
{
"Id":"200",
"description":"Voucher - 200"
}
]
}
]
},
{
"categoryCode":"2",
"categoryName":"B",
"merchants":[
{
"merchantId":"1",
"merchantName":"Shehan",
"vouchers":[
{
"Id":"200",
"description":"Voucher - 200"
},
{
"Id":"300",
"description":"Voucher - 300"
}
]
},
{
"merchantId":"2",
"merchantName":"Ashen",
"vouchers":[
{
"Id":"200",
"description":"Voucher - 200"
},
{
"Id":"300",
"description":"Voucher - 300"
}
]
}
]
}
]
如果您能對此提供幫助,我們將不勝感激。:)
uj5u.com熱心網友回復:
我認為您可以通過以下方式做到這一點:
var result = list.GroupBy(x => new { x.categoryCode, x.categoryName })
.Select(x => new
{
x.Key.categoryCode,
x.Key.categoryName,
Merchants = x.ToList().GroupBy(g => new { g.merchantId, g.mechantName })
.Select(v => new
{
v.Key.merchantId,
v.Key.mechantName,
vouchers = v.Select(s => new { Id = s.voucherId, description = s.voucherDescription })
.ToList()
})
});
var json = JsonConvert.SerializeObject(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/460581.html
