C# 将动态列转换为JSon
使用.Net,我们目前有一个嵌套的列表模型(列表中的列表),它表示一个数据网格,因此在一个行列表中有一个列列表 即:- 其中name和age是列标题(模型中的ColumnHeader),对应关系是值(模型中的ColumnValue) Linq将如何创建它来生成返回的正确JSON 非常感谢,因为我们一直在努力解决这个问题 更新:-以下消息的示例数据C# 将动态列转换为JSon,c#,.net,asp.net-mvc,json,linq,C#,.net,Asp.net Mvc,Json,Linq,使用.Net,我们目前有一个嵌套的列表模型(列表中的列表),它表示一个数据网格,因此在一个行列表中有一个列列表 即:- 其中name和age是列标题(模型中的ColumnHeader),对应关系是值(模型中的ColumnValue) Linq将如何创建它来生成返回的正确JSON 非常感谢,因为我们一直在努力解决这个问题 更新:-以下消息的示例数据 protected void Page_Load(object sender, EventArgs e) { List<List<
protected void Page_Load(object sender, EventArgs e)
{
List<List<test>> m = new List<List<test>>();
List<test> lt = new List<test>();
lt.Add(new test { ColumnName = "cn1", ColumnValue = "cv1" });
lt.Add(new test { ColumnName = "cn2", ColumnValue = "cv2" });
lt.Add(new test { ColumnName = "cn3", ColumnValue = "cv3" });
m.Add(lt);
lt = new List<test>();
lt.Add(new test { ColumnName = "cn12", ColumnValue = "cv12" });
lt.Add(new test { ColumnName = "cn22", ColumnValue = "cv22" });
lt.Add(new test { ColumnName = "cn32", ColumnValue = "cv32" });
m.Add(lt);
}
public class test
{
public string ColumnName { get; set; }
public string ColumnValue { get; set; }
}
受保护的无效页面加载(对象发送方,事件参数e)
{
列表m=新列表();
列表lt=新列表();
lt.Add(新测试{ColumnName=“cn1”,ColumnValue=“cv1”});
lt.Add(新测试{ColumnName=“cn2”,ColumnValue=“cv2”});
lt.Add(新测试{ColumnName=“cn3”,ColumnValue=“cv3”});
m、 添加(lt);
lt=新列表();
lt.Add(新测试{ColumnName=“cn12”,ColumnValue=“cv12”});
lt.Add(新测试{ColumnName=“cn22”,ColumnValue=“cv22”});
lt.Add(新测试{ColumnName=“cn32”,ColumnValue=“cv32”});
m、 添加(lt);
}
公开课考试
{
公共字符串ColumnName{get;set;}
公共字符串列值{get;set;}
}
只需序列化/返回obj
输出:
[
{
"cn1": "cv1",
"cn2": "cv2",
"cn3": "cv3"
},
{
"cn12": "cv12",
"cn22": "cv22",
"cn32": "cv32"
}
]
您使用的是什么json框架,例如json.net、javascriptserializer、,等等?MVC system.web.MVC.JsonResultWe中内置的一个我们正在尝试返回正确格式的Json,以便与Angle Grid一起使用,但正在努力使用Linq操作嵌套列表来创建此JS。我认为在将
列表
传递给Json方法之前,您需要将其转换为类似列表
的格式。你试过了吗?谢谢你的回复,但不太确定创建字典列表会有什么不同?
[
{name: 'Moroni', age: 50},
{name: 'Tiancum', age: 43},
{name: 'Jacob', age: 27},
{name: 'Nephi', age: 29},
{name: 'Enos', age: 34}];
]
protected void Page_Load(object sender, EventArgs e)
{
List<List<test>> m = new List<List<test>>();
List<test> lt = new List<test>();
lt.Add(new test { ColumnName = "cn1", ColumnValue = "cv1" });
lt.Add(new test { ColumnName = "cn2", ColumnValue = "cv2" });
lt.Add(new test { ColumnName = "cn3", ColumnValue = "cv3" });
m.Add(lt);
lt = new List<test>();
lt.Add(new test { ColumnName = "cn12", ColumnValue = "cv12" });
lt.Add(new test { ColumnName = "cn22", ColumnValue = "cv22" });
lt.Add(new test { ColumnName = "cn32", ColumnValue = "cv32" });
m.Add(lt);
}
public class test
{
public string ColumnName { get; set; }
public string ColumnValue { get; set; }
}
var obj = m.Select(x => x.ToDictionary(y => y.ColumnName, y => y.ColumnValue))
.ToList();
[
{
"cn1": "cv1",
"cn2": "cv2",
"cn3": "cv3"
},
{
"cn12": "cv12",
"cn22": "cv22",
"cn32": "cv32"
}
]