Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自Web服务的JSON哈希表_C#_Asp.net_Web Services_Asmx_Hashtable - Fatal编程技术网

C# 来自Web服务的JSON哈希表

C# 来自Web服务的JSON哈希表,c#,asp.net,web-services,asmx,hashtable,C#,Asp.net,Web Services,Asmx,Hashtable,我试图从web服务返回JSON形式的键/值对列表,但Hashtable出现序列化错误 我在其他项目中也使用过它,昨天它正在返回一个哈希表,但是,它似乎发生了一些变化,导致抛出一个错误: 类型为System.Collections.Hashtable 不支持,因为它实现了 词典 我已经通过使用List>解决了这个问题,但我不明白为什么这以前是有效的,而现在不是 我的方法签名是: [ScriptMethod(ResponseFormat = ResponseFormat.Json)] [WebMet

我试图从web服务返回JSON形式的键/值对列表,但Hashtable出现序列化错误

我在其他项目中也使用过它,昨天它正在返回一个哈希表,但是,它似乎发生了一些变化,导致抛出一个错误:

类型为System.Collections.Hashtable 不支持,因为它实现了 词典

我已经通过使用List>解决了这个问题,但我不明白为什么这以前是有效的,而现在不是

我的方法签名是:

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public List<KeyValuePair<string, object>> FindPosts(string type, string searchText, int offset) {
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
[网络方法]
公共列表FindPosts(字符串类型、字符串搜索文本、整数偏移量){

内部Json序列化程序完全能够序列化/反序列化Xml序列化程序不具备的哈希表,因此您可能在代码中的某个位置使用Xml序列化程序,而没有注意到它。查看您的代码以确保所有序列化都使用Json。

您以前是如何从哈希表转换为Json的?您是否使用了。NET本机JSON?(我通常使用JSON.NET)是否使用JavaScriptSerializer类?文档表明支持哈希表的序列化…我使用内置的.NET序列化。