在我的 MVC Controller 中,我有以下 linq 查询(工作正常):
var result = from li in lineItems
join r in rates on li.something = r.something
select new
{
li.something
li.somethingElse
li.another
r.something
r.somethingElse
r.rate1
r.rate2
r.rate3
r.rate4
};
return JSON(result.ToList(), JsonRequestBehavior.AllowGet);
这样就可以很好地生成平面对象。然而,我真正需要的是让比率成为它们自己的对象,更深一层,如下所示:
{
li.something
li.somethingElse
li.another
r.something
r.somethingElse
rates = {
{id = "1", value = r.rate1}
{id = "2", value = r.rate2}
{id = "3", value = r.rate3}
{id = "4", value = r.rate4}
}
}
我很难获得正确的 C# 语法来实现这一点。硬编码 id 很好。我将始终只有 1、2、3 和 4 的比率。
最佳答案
您可以将“rates”属性定义为对象的匿名数组,请参阅下面的示例以供引用。
{
li.something,
li.somethingElse,
li.another,
r.something,
r.somethingElse,
rates = new[]{
new {id = "1", value = r.rate1},
new {id = "2", value = r.rate2},
new {id = "3", value = r.rate3},
new {id = "4", value = r.rate4}
}
}
关于c# - 在 linq select 语句中创建 json 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46409485/