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"}]

我只想找到一种方法:

  1. 对于javaMapJSON格式,C#可以取消它的相关性
  2. 对于C#,找到一种将其序列化为java可理解格式的方法

感谢

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

尝试使用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();