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()
{ }
}