【发布时间】:2014-09-14 12:29:04
【问题描述】:
我在反序列化具有两个属性的对象时遇到了很多困难,一个是简单的字符串,另一个是数组数组(而数组中的每个元素都有一个名称和一个值)。
在我到达服务器端之前,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; }
}
【问题讨论】:
标签: c# javascript arrays ajax json