JSON:c#中的java Map等价物是什么

我面临的问题是使用JSON将对象传递给C#并且C#将字符串传递回Java,然后java将其反序列化为Map BTW,.net版本为3.5

这是问题所在

java map JSON字符串采用以下格式:

{"key1":"value1","key2":"value2"} 

但在C#中,字典被封为

 [{"Key":"key1","Value":"value1"},{"Key":"key2","Value":"value2"}] 

我只是想找到一种方法来做到这一点:

  1. 对于java Map JSON格式,C#可以对其进行解除分类
  2. 对于C#,找到一种方法将其seledize为java可理解的格式

谢谢

尝试使用JavaScriptSerializer而不是DataContractJsonSerializer

 var dict = new Dictionary { { "key1", "value1" }, { "key2", "value2" } }; var jss = new JavaScriptSerializer(); string json = jss.Serialize(dict); // {"key1":"value1","key2":"value2"} 

我为Dictionary编写了一个扩展方法,将其序列化为JSON:

 public static string SerializeToJson(this IDictionary dict) { var sb = new StringBuilder(); sb.Append("{"); foreach (string key in dict.Keys) { sb.AppendFormat("\"{0}\": \"{1}\"", key, dict[key]); sb.Append(key != dict.Keys.Last() ? ", " : String.Empty); } sb.Append("}"); return sb.ToString(); } 

所以你可以写:

 var jsonString = myDict.SerializeToJson();