RestSharp JsonDeserializer列表对象

时间:2018-11-19 09:27:34

标签: c# restsharp json-deserialization

我想使用RestSharp反序列化使用数组反序列化JSON。

public class details
{
    public string id { get; set; }
    public string tran_id { get; set; }
    public string tran_type { get; set; }
    public string tran_status { get; set; }
    public string expiry_date_time { get; set; }
    public string number { get; set; }
}

我的JSON如下:

{
"details": [
    {
        "id": "ebca66079b44",
        "tran_id": "c9b1bce025f5",
        "tran_type": "A",
        "tran_status": "B",
        "expiry_date_time": "2018-11-26T06:33:04+00:00",
        "number": "12345678ABC"
    },
    {
        "id": "ebca66079b44",7c2445c8-a5ba-4ad2-a38e-3ea682c60edf",
        "tran_id": "3ea682c60edf",
        "tran_type": "A",
        "tran_status": "B",
        "expiry_date_time": "2018-11-26T06:26:28+00:00",
        "number": "22345678ABC"
    },
    {
        "id": "ebca66079b44",
        "tran_id": "e40c45817985",
        "tran_type": "A",
        "tran_status": "B",
        "expiry_date_time": "2018-11-26T06:26:06+00:00",
        "number": "32345678ABC"
    }
]
}

我的代码是:

IRestResponse response = client.Execute(request);
//Deserialize Json
return new JsonDeserializer().Deserialize<List<details>>(response);

我可以得到“详细信息”,但不能得到对象内部的列表。

1 个答案:

答案 0 :(得分:1)

您需要使用包含JSON数组数据的对象,因为最外层是对象而不是数组。

public class JsonModel
{
    public List<Detail> details { get; set; }
}


public class Detail
{
    public string id { get; set; }
    public string tran_id { get; set; }
    public string tran_type { get; set; }
    public string tran_status { get; set; }
    public string expiry_date_time { get; set; }
    public string number { get; set; }
}

这样使用。

new JsonDeserializer().Deserialize<JsonModel>(response);

注意

有一个json数据可能会从"ebca66079b44",7c2445c8-a5ba-4ad2-a38e-3ea682c60edf",数据中引发错误。

有两种方法可以轻松地创建模型。

  • 您可以在Visual Studio中使用Web Essentials,使用“编辑”>“选择性粘贴”>将JSON粘贴为类,可以更轻松地了解Json与模型之间的关系。

  • 如果您不能使用Web Essentials,则可以代替使用https://app.quicktype.io/?l=csharp在线JSON到Model类。

您可以尝试使用这些模型来携带JSON格式。