JSON:c#中的java Map等价物是什么
本文关键字:Map 等价物 是什么 java 中的 JSON | 更新日期: 2023-09-27 18:22:21
我面临的问题是,使用JSON将对象传递给C#,C#将字符串传递回Java,然后Java将其反序列化为Map顺便说一句,.net版本是3.5
这是的问题
java映射JSON字符串的格式如下:
{"key1":"value1","key2":"value2"}
但在C#中,字典被序列化为
[{"Key":"key1","Value":"value1"},{"Key":"key2","Value":"value2"}]
我只想找到一种方法:
- 对于javaMapJSON格式,C#可以取消它的相关性
- 对于C#,找到一种将其序列化为java可理解格式的方法
感谢
尝试使用JavaScriptSerializer
而不是DataContractJsonSerializer
:
var dict = new Dictionary<string, string>
{
{ "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<string, object> 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();