我有一个asmx webservice,它调用一个方法来构建一个2级嵌套列表List,每个组都包含一个List。 json被用于通过knockout.js填充和手风琴。当嵌套对象返回到jquery ajax调用时,嵌套对象(以及带有stingified的json)不包含任何对象名称。
我知道我遗漏了一些基本的东西,但我感到很茫然......并且花了两天时间无济于事。
我期待(请忽略逃脱):
[{\"__type\":\"Group\",\"id\":1488,\"name\":\"Baby Books\",\"categories\":[{\"__type\":\"GroupCategory\",\"id\":152,\"name\":\"Activity Books\",\"value\":\"Ignore\"}]}]
但是我正在
[{\"id\":1488,\"name\":\"Baby Books\",\"categories\":[{\"id\":152,\"name\":\"Activity Books\",\"value\":\"Ignore\"}]}]
这些类定义为:
public class Group
{
public int id;
public string name;
public List<GroupCategory> categories;
public Group(int id, string name)
{
this.id = id;
this.name = name;
this.categories = new List<GroupCategory>();
}
}
public class GroupCategory
{
public int id;
public string name;
public string value;
public GroupCategory(int id, string name)
{
this.id = id;
this.name = name;
this.value = CategoryValue.Ignore.ToString();
}
}
public enum CategoryValue
{
UseCategoryValue,
Ignore,
Included,
Excluded,
}
asmx和构建方法是:
[WebMethod]
public List<Group> GetIncludeExcludeJson()
{
var Groups = new List<Group>();
ShopAssistGroupHandler.getInExCategories(Groups);
return Groups;
}
和
public static void getInExCategories(List<Group> Groups, CategoryValue defaultValue = CategoryValue.UseCategoryValue)
{
var inexGroups = GroupCategoryHelper.GetGroups();
try
{
foreach (GroupCategoryDictionary dGroup in inexGroups.Values)
{
var Group = new Group(dGroup.ParentGroupCategory.CategoryID, dGroup.ParentGroupCategory.Name);
Groups.Add(Group);
foreach (var groupCategory in dGroup.Values)
{
var category = new GroupCategory(groupCategory.CategoryID, groupCategory.Name);
Group.categories.Add(category);
if (defaultValue == CategoryValue.UseCategoryValue)
{
category.value = groupCategory.ExtensionData == null
? ""
: groupCategory.ExtensionData;
category.value = category.value == CategoryValue.Excluded.ToString()
? CategoryValue.Excluded.ToString()
: CategoryValue.Ignore.ToString();
}
else
{
category.value = defaultValue.ToString();
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}
感谢您的帮助 - 感觉非常愚蠢; - } 雅培