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"}]
我只是想找到一种方法来做到这一点:
- 对于java Map JSON格式,C#可以对其进行解除分类
- 对于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();