现在我有一些数据如下:
{"parameters":{"fields":["a","b","c"]}
并且我使用ajax将请求发送到.net WebMethod,如下所示:
$.ajax({
url: 'Query/Query.asmx/test2?nocache=1',
dataType: "json",
data: JSON.stringify(data),
type: 'POST',
contentType: "application/json; charset=utf-8",
})
我在query.asmx中使用的WebMethod是:
[WebMethod]
public string test2(Dictionary<string, object> parameters)
{
return "ok";
}
我们可以看到parameters["fields"]is类型System.Object[]
但是现在我需要压缩数据并在后端将其解压缩,然后数据变成一个字符串(解压缩后)。现在,我想对它进行反序列化以使其与以前的类型完全相同。
解压缩后,数据变为JSON字符串:
"{\"parameters\":{\"fields\":[\"a\",\"b\",\"c\"]}}"
现在,我想使用JavaScriptSerializer将其反序列化为相同的类型。但是我能得到的是parameters["fields"]类型,System.Collections.ArrayList而不是System.Object[]我需要的类型。
代码如下
public class TestDataObject
{
public Dictionary<string, object> parameters { get; set; }
}
--
var serializer = new JavaScriptSerializer();
var a = serializer.Deserialize<TestDataObject>(d);
所以问题是:我是否有办法将其反序列化为完全相同的类型?由于已经为某些自定义类型实现了一些javascriptSerializer转换器,因此无法使用其他库。
SMILET
相关分类