2017-05-25 62 views
1

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

您是否尝试过让你的模型反映JSON呢?它看起来像“儿童”应该是一个数组(不能说这是什么类型的),而不是一个字符串... –

+0

是的,谢谢。没有意识到,无法转换为字符串 – cooper

+0

好吧,将发布作为答案。 –

回答

7

该值是一个数组,但您的字段是一个字符串。我建议你让它成为适当类型的数组(或列表) - 我们不能告诉你的JSON类型是什么,但也许你想要一个字符串数组?

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

(如果你可以移动到Json.NET,我一般建议在JavaScriptSerializer,太...)