3
我試圖實現新的GoCardless API,但我在處理webhooks時遇到問題。GoCardless事件不會Deserialise
我已經,做閱讀到一個字符串的響應:
Stream req = Request.InputStream;
req.Seek(0, System.IO.SeekOrigin.Begin);
string requestContent = new StreamReader(req).ReadToEnd();
這給了我一個JSON響應如下:
"{\"events\":[{\"id\":\"EV000SDG4B5WRP\",\"created_at\":\"2017-07-31T08:17:16.202Z\",\"resource_type\":\"mandates\",\"action\":\"cancelled\",\"links\":{\"mandate\":\"MD0002010AE1MV\"},\"details\":{\"origin\":\"api\",\"cause\":\"bank_account_closed\",\"description\":\"The customer's account was disabled at your request.\"},\"metadata\":{}}]}"
根據該文件,我應該再能要做
JsonConvert.DeserializeObject<GoCardless.Resources.Event>(requestContent);
但是,這總是給我一個空白對象,所有的屬性設置爲null。
的源代碼的事件類可以在這裏找到:https://github.com/gocardless/gocardless-dotnet/blob/master/GoCardless/Resources/Event.cs
爲什麼會這樣無法反序列化對象?
我不知道,太多,但是當我嘗試,我得到一個錯誤:「'無法反序列化當前的JSON對象(如{\「name \」:\「value \」})轉換爲類型'System.Collections.Generic.List'1 [GoCardless.Resources.Event]',因爲該類型需要一個JSON數組(例如[1,2, 3])正確地進行反序列化。# –
糟糕,我的錯誤 - 你需要一個根對象 - 已編輯 – DavidG
是的 - 它的工作!如果他們只是保持簡單,併爲每個事件分別撥打電話 –