私はRestSharpを初めて使用します。Jsonメッセージを返すPythonで書かれたRestful Serviceがあります。RestSharp を使用して JSON メッセージをオブジェクトに逆シリアル化する C# クライアントを作成しました。
レスポンス内容は「\"[{\\"coupon\\":4.5、\\"cusip\\":\\"912810QB7\\"、\\"currface\\":1000000、\\"origface\」 \": 1000000}]\""
response.data がヌルです。
応答オブジェクトの内部例外は、「タイプ 'System.String' のオブジェクトをタイプ 'System.Collections.Generic.IDictionary`2[System.String,System.Object]' にキャストできません」です。
以下は私のコードです:
public class QuartzServiceAdapter
{
const string BaseUrl = "http://localhost:7666/ahs/";
public QuartzServiceAdapter() { }
public T Execute<T>(RestRequest request) where T : new()
{
var client = new RestClient();
client.BaseUrl = BaseUrl;
var response = client.Execute<T>(request);
return response.Data;
}
public List<RootObject> GetBond()
{
var request = new RestRequest(Method.GET);
request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };
request.Resource = "getabond";
//request.RootElement = "RootObject";
return Execute<List<RootObject>>(request);
}
}
http://json2csharp.com/を使用して次のオブジェクトを作成しました
public class RootObject
{
public double coupon { get; set; }
public string cusip { get; set; }
public int currface { get; set; }
public int origface { get; set; }
}
逆シリアル化が失敗する理由についてのアイデアはありますか? 前もって感謝します!