如何将IEnumerable转换为JSON?

时间:2011-04-29 04:16:00

标签: c# json .net-4.0

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

谢谢!

4 个答案:

答案 0 :(得分:37)

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);

产生输出

[1,2,3]
[{"Bar":"A"},{"Bar":"B"}]

然后你可以恢复你的序列

IEnumerable<Foo> foos = serializer.Deserialize<IEnumerable<Foo>>(outputOfFoos);

答案 1 :(得分: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;

答案 2 :(得分:2)

我会研究第三方工具来将对象转换为JSON。这是一个很好的:http://json.codeplex.com/

答案 3 :(得分:2)

您可以使用.NET Framework本身并且不使用任何第三方工具

这样做
using System.Web.Script.Serialization;

public class Json
{
    public string getJson()
    {
       // some code //
       var products = // IEnumerable object //
       string json = new JavaScriptSerializer().Serialize(products);
       // some code //
       return json;
    }
}