我有一个返回包含1..n记录的IEnumerable的方法。如何将结果转换为JSON字符串?
谢谢!
答案 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;
}
}