我正在尝试通过ASP.NET Web服务创建多级JSON对象。我正在使用Fiddler来查看返回的Web服务是什么。我也在其他一些网站上提供网络服务,这正在返回我想要的内容。以下是示例:
这应该是这样的:
这就是它现在的样子:
我正在使用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
}
答案 0 :(得分:1)
从Fiddler复制原始json,并将其粘贴到此站点:http://json2csharp.com/。它将创建所需的C#类,以便序列化为所需的JSON格式。
答案 1 :(得分:0)
对于那些将面临同样问题的人。答案是在返回类型的Web服务中。如果要返回字符串并且响应格式设置为Json,则.NET会自动序列化您的字符串。因此,在第一次序列化之后,.NET又做了另一次,它只是逃脱了我的所有&#34;。这就是它。