如何将IEnumerable转换为JSON?

Den*_*ail 28 c# json .net-4.0

我有一个方法返回包含1..n记录的IEnumberable.如何将结果转换为JSON字符串?

谢谢!

Ant*_*ram 40

IEnumerable<int> sequenceOfInts = new int[] { 1, 2, 3 };
IEnumerable<Foo> sequenceOfFoos = new Foo[] { new Foo() { Bar = "A" }, new Foo() { Bar = "B" } };

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string outputOfInts = serializer.Serialize(sequenceOfInts);
string outputOfFoos = serializer.Serialize(sequenceOfFoos);
Run Code Online (Sandbox Code Playgroud)

哪个产生输出

[1,2,3]
[{"Bar":"A"},{"Bar":"B"}]
Run Code Online (Sandbox Code Playgroud)

然后你可以恢复你的序列

IEnumerable<Foo> foos = serializer.Deserialize<IEnumerable<Foo>>(outputOfFoos);
Run Code Online (Sandbox Code Playgroud)


小智 5

也许你可以试试这个:

var categories = from c in db.tableone
                 select new { key = c.tableoneID, value = c.tableoneName };

JsonResult categoryJson = new JsonResult();
categoryJson.Data = categories;

return categoryJson;
Run Code Online (Sandbox Code Playgroud)