尝试使用JSON.NET将JSON反序列化为对象

时间:2014-05-02 14:23:29

标签: c# json json.net

我无法弄清楚为什么我的模型不会填充我的JSON字符串中的数据。这是模型:

public class MidasReturnModel
{

    public string status { get; set; }

    public string msg { get; set; }

}

这是我的C#代码:

MidasReturnModel rtn = JsonConvert.DeserializeObject<MidasReturnModel>(post_responseTemp);

这是JSON字符串post_responseTemp,因为它传入了该函数:

        "{\"MidasReturnModel\": {\"status\":\"warn\", \"msg\":\"Customer does not have contract for this season\"}}"

谁能看到我做错了什么? “rtn”是一个模型,当我运行代码时,状态和msg都是“null”。

1 个答案:

答案 0 :(得分:1)

看着你的json,你正在定义MidasReturnModel

当这个被反序列化时,它正在你的班级上寻找一个名为MidasReturnModel的属性。

我会尝试你的json:

{
    "status": "warn",
    "msg": "Customer does not have contract for this season"
}

如果你想让你的json保持不变,那么就必须将你的viewmodel包装在另一个类中。

public class MidasWrapper
{
    public MidasReturnModel MidasReturnModel { get; set; }
}

public class MidasReturnModel
{

    public string status { get; set; }

    public string msg { get; set; }

}

var rtn = JsonConvert.DeserializeObject<MidasWrapper>(post_responseTemp);