簡體   English   中英

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

[英]JSON : what is the java Map equivalent in c#

我面臨的問題是,使用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#,找到一種方法將其sededize為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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM