RestSharp104.1反序化用法

RestSharp中的json反序列化类为JsonDeserializer,其用法与JSON.NET有点不同。

(1) 在反序列化前要设置RootElement,否则无法反序列化成功。

(2) 反序列化后的对象属性如果有数组成员变量,必须用List<string>,而不能用string[],否则会提示没有定义无参数的构造函数。

以下例子用于反序列化一个json字符串。

JSON字符串为:{"error":{"code":400,"message":"Unable to complete  operation.","details":["Invalid URL"]}}

.NET代码如下:

Public class JsonDemo

{

public void Test()

{

var myresponse = new RestResponse();
myresponse.Content = "{\"error\":{\"code\":400,\"message\":\"Unable to complete  operation.\",\"details\":[\"Invalid URL\"]}}";

       

JsonDeserializer myJsonDeserializer = new JsonDeserializer();
myJsonDeserializer.RootElement = "error";       

List<errorObject> myErrors = myJsonDeserializer.Deserialize<List<errorObject>>(myresponse);

}

}

public class errorObject
{
    private int _code;
    public int code
    {
        get { return _code; }
        set { _code = value; }
    }

    private string _message;
    public string message
    {
        get { return _message; }
        set { _message = value; }
    }

    private List<string> _details;
    public List<string> details
    {
        get { return _details; }
        set { _details = value; }
    }

    public errorObject()
    { }

}

原文地址:https://www.cnblogs.com/janehlp/p/2759012.html