字符串中的空数组打破反序列化

时间:2017-05-25 16:19:18

标签: c# json

我有一串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);

1 个答案:

答案 0 :(得分:7)

该值是一个数组,但您的字段是一个字符串。我建议你把它变成一个合适类型的数组(或列表) - 我们不知道你的JSON会是什么类型,但是你想要一个字符串数组?

我还建议使用属性而不是公共字段。

(如果你可以转到Json.NET,我通常会推荐JavaScriptSerializer以上......)