我遇到的问题是使用JSON将对象传递给C#并且C#将字符串传递回Java,然后java将其反序列化为Map 顺便说一句,.net版本是3.5
这是问题
java map JSON字符串采用以下格式:
{"key1":"value1","key2":"value2"}
但在C#中,字典被分解为
[{"Key":"key1","Value":"value1"},{"Key":"key2","Value":"value2"}]
我只想找到一种方法:
由于
答案 0 :(得分:5)
尝试使用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"}
答案 1 :(得分:-1)
我为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();