使用Dictionary将JSON传递给C#方法<;int,List<;int>&燃气轮机;作为参数
我无法将正确格式的JSON数据发送到此C#方法: .NET为我提供了一个“InvalidOperationException”,并显示以下消息:使用Dictionary将JSON传递给C#方法<;int,List<;int>&燃气轮机;作为参数,c#,jquery,json,C#,Jquery,Json,我无法将正确格式的JSON数据发送到此C#方法: .NET为我提供了一个“InvalidOperationException”,并显示以下消息: Type 'System.Collections.Generic.Dictionary is not supported for serialization/deserialization of a dictionary, keys must be strings or objects. 我尝试了快速逆向工程,得到了以下结果: Version=4.0
Type 'System.Collections.Generic.Dictionary is not supported for
serialization/deserialization of a dictionary, keys must be strings or objects.
我尝试了快速逆向工程,得到了以下结果: Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.Collections.Generic.List`1[[System.Int32,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[mscorlib,Version=4.0.0.0.0,Culture=neutral,PublicKeyToken=B77A561934E089]]不支持字典的序列化/反序列化,键必须是字符串或对象 代码:
Dictionary dict=新字典{
{0,新列表{1,2},
{1,新列表{3,4}
};
var serializer=新的JavaScriptSerializer();
ViewBag.Message=serializer.Serialize(dict);
当您将其更改为DictionaryDictionary<int, List<int>> dict = new Dictionary<int, List<int>>{
{0, new List<int>{1,2}},
{1, new List<int>{3,4}}
};
var json = JsonConvert.SerializeObject(dict);
// json = {"0":[1,2],"1":[3,4]}
Dictionary dict=新字典{
{0,新列表{1,2},
{1,新列表{3,4}
};
var json=JsonConvert.SerializeObject(dict);
//json={“0”:[1,2],“1”:[3,4]}
所以您不应该对它有任何问题。您使用的是什么序列化程序?如果您使用的是默认的.net序列化,我建议您使用JSON序列化程序,它可以处理字典序列化,并且比默认的更高效。当您使用ajax发送JSON对象时,请尝试以下链接:您可以用NewtonSoft JSON序列化程序替换默认的JavasScriptSerializer。谢谢。需要更改:
var-bar={“0”:[1,2],“1”:[3,4]}代码>和公共bool提交的教育回复(int educationId、字典问题和答案)
。
Type 'System.Collections.Generic.Dictionary is not supported for
serialization/deserialization of a dictionary, keys must be strings or objects.
Dictionary<int, List<int>> dict = new Dictionary<int, List<int>>{
{0, new List<int>{1,2}},
{1, new List<int>{3,4}}
};
var serializer = new JavaScriptSerializer();
ViewBag.Message = serializer.Serialize(dict);
Dictionary<int, List<int>> dict = new Dictionary<int, List<int>>{
{0, new List<int>{1,2}},
{1, new List<int>{3,4}}
};
var json = JsonConvert.SerializeObject(dict);
// json = {"0":[1,2],"1":[3,4]}