ASP.NET创建多级JSON

时间:2014-06-04 11:18:20

标签: c# asp.net json

我正在尝试通过ASP.NET Web服务创建多级JSON对象。我正在使用Fiddler来查看返回的Web服务是什么。我也在其他一些网站上提供网络服务,这正在返回我想要的内容。以下是示例:

这应该是这样的:

This is what it should look like: 这就是它现在的样子:

This is what it should look like:
我正在使用JavaScriptSerializer从ASP.NET列表中生成JSON对象。任何人都可以告诉我,我怎样才能实现这个美观的结构,而不是我的扁平结构?我将在jQuery中使用这个JSON对象。

我的代码:

List<ResultItem> results = new List<ResultItem> { };
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                results.Add(new ResultItem { T = ValidationHelper.GetString(row[4], ""), A = "Adresa", E = "0 akci" });
            }

            resultCategories.Add(new ResultCategory { T = "Mesta", I = results });

            json = resultCategories.ToJSON();

JSON助手

public static class JSONHelper
{
    public static string ToJSON(this object obj)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        return serializer.Serialize(obj);
    }

    public static string ToJSON(this object obj, int recursionDepth)
    {
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        serializer.RecursionLimit = recursionDepth;
        return serializer.Serialize(obj);
    }
}

类:

public class ResultCategory
{
    public string T { get; set; }// Title
    public List<ResultItem> I { get; set; }
}

public class ResultItem
{
    public string T { get; set; }// Title
    public string A { get; set; }// Address
    public string E { get; set; }// Events number
}

2 个答案:

答案 0 :(得分:1)

从Fiddler复制原始json,并将其粘贴到此站点:http://json2csharp.com/。它将创建所需的C#类,以便序列化为所需的JSON格式。

答案 1 :(得分:0)

对于那些将面临同样问题的人。答案是在返回类型的Web服务中。如果要返回字符串并且响应格式设置为Json,则.NET会自动序列化您的字符串。因此,在第一次序列化之后,.NET又做了另一次,它只是逃脱了我的所有&#34;。这就是它。