这里将不胜感激。
我正在尝试使用StackService。文本和 JSON ,以获取对象列表,每个对象包含一个列表。
以下是类的定义:
[DataContract]
public class GroupingList
{
[DataMember(Name = "id")]
public int Id
{
get; set;
}
[DataMember(Name = "name")]
public string Name
{
get; set;
}
[DataMember(Name = "form_field")]
public string FormField
{
get;
set;
}
[DataMember(Name = "groups")]
public List<GroupingOptions> Groups
{
get; set;
}
}
[DataContract]
public class GroupingOptions
{
[DataMember(Name = "bit")]
public string Bit
{
get; set;
}
[DataMember(Name = "name")]
public string Name
{
get; set;
}
[DataMember(Name = "display_order")]
public string DisplayOrder
{
get; set;
}
[DataMember(Name = "subscribers")]
public int Subscribers
{
get; set;
}
}
我正在使用'PostJsonToUrl()'方法,并接收以下字符串作为返回结果:
"\n[{\"id\":14101,\"name\":\"Accounting1\",\"form_field\":\"hidden\",\"display_order\":\"0\",\"groups\":[{\"bit\":\"1\",\"name\":\"Interest\",\"display_order\":\"1\",\"subscribers\":null},{\"bit\":\"2\",\"name\":\"Register\",\"display_order\":\"2\",\"subscribers\":null}]}]"
现在,当我尝试调用FromJson(List<GroupingList>)
方法时,我遇到以下异常:
Type definitions should start with a '{', expecting serialized type 'GroupingList', got string starting with:
[{"id":14101,"name":"Accounting1","form_field":"h
有人可以指导我这个问题是否与'GroupingList'和'GroupingOptions'类的定义有关? 'PostJsonToUrl()'的返回结果是一个列表(在这种情况下有一个条目)包含另一个列表(有两个项目),所以我不明白为什么调用FromJson(List)失败。
非常感谢
答案 0 :(得分:2)
问题是字符串开头的\n
符号。您可以先删除它,然后反序列化GroupingList
。
string result = "\n[{\"id\":14101,\"name\":\"Accounting1\",\"form_field\":\"hidden\",\"display_order\":\"0\",\"groups\":[{\"bit\":\"1\",\"name\":\"Interest\",\"display_order\":\"1\",\"subscribers\":0},{\"bit\":\"2\",\"name\":\"Register\",\"display_order\":\"2\",\"subscribers\":0}]}]";
result = result.Trim();
List<GroupingList> list = result.FromJson<List<GroupingList>>();