使用newtonsoft.json将字符串反序列化为c#对象

时间:2018-06-12 13:41:02

标签: c# json asp.net-web-api json.net

我有一个像下面的json字符串

value = {
    {
        "Type": "P1",    
        "IsAvailable": "1",  
        "Logics": {
            "ID": "B",
            "ID": "X",
            "ID": "B"
        }
    }
}

它应该被解除分类为C#类对象,如下所示

public class CatType
{
    public string Type { get; set; }
}

public class Logic
{
    public string ID{ get; set; }
}

当我尝试使用以下语句反序列化时,我得到异常

CatType _catType= JsonConvert.DeserializeObject<CatType >(value.ToString());

成功反序列化对象需要做些什么?

我尝试了不同的方法解决问题没有解决问题

1 个答案:

答案 0 :(得分:3)

您的类对于该json类型不正确。您需要在CatType中包含一个Logic集合。 CatType中也不存在IsAvailable。结构看起来更像是这样。

public class CatType
{
    public string Type { get; set; } 
    public string IsAvailable { get; set; }
    public List<Logic> Logics { get; set; }
}

public class Logic
{
    public string ID{ get; set; }
}

您的json也无效。 Logics对象有3个属性,名称ID不允许。它应该是一个数组类型。像这样

value={
    {
        "Type": "P1",    
        "IsAvailable": "1",  
        "Logics": [
            "ID": "B",
            "ID": "X",
            "ID": "B"
        ]
    }
}