我从存储过程运行并使用sqlDataReader reader读取它然后我有一个object []结果写入所有数据。数据如下所示:
result: { {[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]}, ... }
一个真实的例子就像{{1,{1/18/2017},20},{2,{1/19/2017},21},{3,{1/20/2017},22}}
我想为每个子对象中的每个项添加项名称,并将json返回到我的javascript。所以预期的结果将是:
result = {{"ID":1, "Date":{1/18/2017},"value":20},
{"ID":2,"Date":{1/19/2017},"value":21},
{"ID":3,"Date":{1/20/2017},"value":22}}
任何人都知道正确的方法吗?使用LinqtoObject或lambda还是别的什么?
答案 0 :(得分:0)
这是我的建议。创建一个结构:
struct MyThing
{
public int ID { get; set; }
public DateTime Date { get; set; }
public int Value { get; set; }
}
然后像这样初始化你的列表:
var input = new List<MyThing>(new[]
{
new MyThing { ID = 1, Date = DateTime.Parse("1/18/2017"), Value = 20 },
new MyThing { ID = 2, Date = DateTime.Parse("1/19/2017"), Value = 21 },
new MyThing { ID = 3, Date = DateTime.Parse("1/20/2017"), Value = 22 }
});
.NET是一种面向对象的语言,因此利用它,即创建类,或者在本例中为结构,以保存公共信息集。
此外,使用列表比使用数组要容易得多。
至于转换为JSON,我不是专家,但这是我为上述代码汇总的内容:
var serializer = new JavaScriptSerializer();
string jsonText = serializer.Serialize(input);
注意,您需要添加对System.Web.Extensions
的引用并添加using
指令:
using System.Web.Script.Serialization;