【发布时间】:2018-07-19 14:38:43
【问题描述】:
请帮助解决问题。
我有来自 sql server 之类的数据
Name ColumnName Value
------------------------------------------------
Login FirstName ABC
Login LastName XYX
我的要求是获取像 json 中的数据
{
Name: "Login",
Data: [
FirstName: "ABC",
LastName: "XYZ"
]
}
我已经写了查询,但我没有得到准确的输出
这是查询看起来我很接近请帮助我得到像上面 json 一样的结果
`var data = myDbEntities.GetSectionData(Id)
.GroupBy(section=> new { section.Name })
.OrderBy(section => section.Key.Section)
.Select(section => new
{
Section = section.Key.Section,
Data = section.Select(c => new KeyValuePair<string, string>
(
c.ColumnName,
c.Value
))
}).ToDictionary(c => c.Section);
return data;`
【问题讨论】:
-
您要输出的 json(您的示例)不是有效的 JSON,我认为该数组应该是一个对象?
-
我明白您的要求,但 “为什么?” 因素太强了。您真的有一个包含该数据的表 - 一个名为“名称”的字段,其值为“登录”?另外,我认为最简单的解决方案是将数据输出到一个简单的对象列表中,然后将 JSON 输出映射到任何使用它的位置。我猜它会在某个地方被 Javascript 使用,这意味着当你返回它时,它的格式几乎无关紧要,因为 Javascript 并不关心它,它非常很容易将数组映射到对象中,即使是动态字段名。
标签: c# json linq model-view-controller