[英]Deserialize an object which has an array of arrays (Ajax call + C#)
我在反序列化具有兩個屬性的對象時遇到很多困難,一個是簡單的字符串,另一個是數組的數組(而數組中的每個元素都有一個名稱和一個值)。
在我到達服務器端之前,POST操作非常有效,我可以在那里進行調試,但無法正確反序列化傳遞的數據。 我正在嘗試將someData對象反序列化為服務器端的RequestObject 。
我想得到您的建議,因為我浪費了我的最后幾個小時
在客戶端:(JavaScript)
var dataArrays = [];
dataArrays[0] = [ {"name":"key","value":"xyz"} ];
dataArrays[1] = [ {"name":"firstname","value":"john"}, {"name":"lastname","value":"doe"} ];
var someData = {
someKey: "xyz",
dataArrays: dataArrays
};
$.ajax({
type: 'POST',
url: './mywebservice.asmx/Test',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(someData), ..);
在服務器端:(C#)
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string Test(string someKey, string dataArrays)
{
// someKey has the value: "xyz"
// dataArrays is a string in the following format:
// [[{"name":"key","value":"xyz"}],[{"name":"firstname","value":"john"}{"name":"lastname","value":"doe"}]]
//unable to deserialize in here in any way
// ?? RequestObject requestObj = JsonConvert.DeserializeObject<RequestObject> ??
}
[DataContract]
public class StringData
{
[DataMember]
public string name { get; set; }
[DataMember]
public string value { get; set; }
}
[DataContract]
public class RequestObject
{
[DataMember]
public string someKey { get; set; }
[DataMember]
public List<StringData[]> dataArrays{ get; set; }
}
我已經通過將RequestObject更改為
[DataContract]
public class RequestObject
{
[DataMember]
public string someKey { get; set; }
[DataMember]
public List<List<StringData>> dataArrays{ get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.