我有一個用例,我發佈一個複雜的對象與數組成員使用jQuery。例如:調試ServiceStack POST請求反序列化
data: {
obj1: obj1,
arr1: [ ... ]
}
在服務器上,我實現了ServiceStack服務。服務器上的自動請求映射會爲請求成員生成空值,但如果我提取Request.GetRawBody(),然後使用ServiceStack.Text.JsonSerializer.DeserializeFromString,則可以得到我所需的值。
調試實際的反序列化並查看缺少的內容將非常有用。有人知道怎麼做嗎?
例子:
傳遞一個平面物體 定義一個簡單的請求對象的幾個領域:
public class Request
{
public string Name { get; set; }
}
做一個jQuery的AJAX調用:
$.ajax({
//...
data: {
name: 'John Doe'
}
});
該調用起作用,服務器收到帶有「John Doe」的對象名稱屬性。與子對象
通行證對象
public class Request
{
public Caller Caller { get; set; }
}
public class Caller
{
public string Name { get; set; }
}
然後使從jQuery的一個電話:
$.ajax({
// ...
data: {
caller: {
name: 'John Doe'
}
}
});
呼叫後,對服務請求的「來電顯示」屬性「空「,所以這種方法是行不通的。
結論 在我原來的評估中,我指的是對象和數組的組合。我想問題是獲取一個簡單的子對象序列化/反序列化。這是否意味着這個概念不被支持,還是我錯誤地傳遞了這個對象?
感謝您的回覆。我其實不認爲有什麼問題,我很確定我做錯了什麼。我當然不認爲反序列化有什麼問題,當我簡單地反序列化身體時,它正在工作。我試圖找出什麼是不同的,當對象被映射到請求對象的服務堆棧,並且當身體被手動反序列化時。希望這是有道理的。如果不是,我可以提供代碼示例。 – user975060 2013-04-12 02:51:33
我認爲這將有助於你提供特定的代碼示例。它將在未來爲其他人提供更多幫助。 – kampsj 2013-04-12 13:32:26
我已更新原始條目,對不起,花了一段時間。 – user975060 2013-04-24 02:02:10