我有我的數據庫模型具有版本中,當我GET
對象的C#版本是byte[8]
但在JSON,對象似乎是一個字符串:AAAAAAAACXc=
要精確。序列化和反序列化實體框架版本
當我從我的js應用程序中執行POST
時,我的控制器接受動態c#對象,因爲數據可以是任何派生類,我需要能夠處理所有對象。
目前,我這樣做是爲了反序列化對象:
... Post([FromBody]dynamic data)
{
var jsonObj = JsonConvert.DeserializeObject(data.ToString());
//This line errors out
CareTaker careTaker = JavaScriptSerializer().Deserialize<CareTaker>(jsonObj.ToString());
}
但我得到一個錯誤:
exceptionMessage: "Cannot convert object of type 'System.String' to type 'System.Byte[]'"
因爲在CareTaker
類中,Version
屬性被定義爲一個byte[]
但json字符串顯示爲AAAAAAAACXc=
..
如何將此版本字符串轉換爲其原始格式在:[0 0 0 0 0 0 9 119]
?
謝謝。
我想我會手動覆蓋這個動態屬性值的字節數組,所以走這條路線。我試圖將字符串轉換爲正常的字節數組,但它似乎長度超過8,結束EF引發驗證錯誤,說它應該是字符串或長度爲8的byte[]
...
您是否在使用'Json.NET'和'System.Web.Script.Serialization'進行反序列化?爲什麼不使用'Json.NET'來反序列化到'CareTaker'? – GeorgeChond
@GeorgeChond哎呀,我試着如果我其中任何一個會做得更好,所以這是一個神器,'Json.net'只是返回null值爲我的所有對象,所以我堅持與MS一現在 – LocustHorde