我有一串JSON,我试图将其转换为列表。有一个空数组值,它打破了反序列化(尝试手动删除它或更改为数字并且它有效)。我以为我可以尝试替换字符串中的[],但是有更好的方法可以解决这个问题吗?
public class Tax
{
public string Id;
public string Name;
public string PathOfTerm;
public string Children;
public string Level;
public string RawTerm;
}
var exString = "[{\"Id\":\"12345\",\"Name\":\"aName\",\"PathOfTerm\":\"aTerm\",\"Children\":[],\"Level\":0,\"RawTerm\":null}]";
JavaScriptSerializer ser = new JavaScriptSerializer();
var taxData = ser.Deserialize<List<Tax>>(exString);
答案 0 :(得分:7)
该值是一个数组,但您的字段是一个字符串。我建议你把它变成一个合适类型的数组(或列表) - 我们不知道你的JSON会是什么类型,但是你想要一个字符串数组?
我还建议使用属性而不是公共字段。
(如果你可以转到Json.NET,我通常会推荐JavaScriptSerializer
以上......)