![](/img/trans.png)
[英]Unable to Serialize Object to JSON Using DataContractJsonSerializer
[英]Serialize a Dictionary as JSON object using DataContractJsonSerializer
我有一個[DataContract]
對象,它具有一些屬性並使用DataContractJsonSerializer
序列化為 JSON。
其中一個屬性是Dictionary<string, string>
,當序列化發生時,它會生成以下 JSON 模式。
"extra_data": [
{
"Key": "aKey",
"Value": "aValue"
}
]
現在我需要 JSON 模式是這樣的
"extra_data": {
"aKey": "aValue"
}
您當然永遠無法知道值是什么,它是用戶將設置鍵和值的Dictionary
。
我在想這是否可以使用匿名類型發生,或者是否有我可以采取的配置來實現我的目標?
謝謝。
好吧,假設你有:
[DataContract]
public class MyObject
{
[DataMember(Name = "extra_data")]
public Dictionary<string, string> MyDictionary { get; set; }
}
然后您可以使用DataContractJsonSerializerSettings
並將UseSimpleDictionaryFormat
設置為 true,如下所示:
var myObject = new MyObject { MyDictionary = new Dictionary<string, string> { { "key1", "value1" }, { "key2", "value2" } } };
DataContractJsonSerializerSettings settings = new DataContractJsonSerializerSettings { UseSimpleDictionaryFormat = true };
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(MyObject), settings);
var result = string.Empty;
using (MemoryStream ms = new MemoryStream())
{
serializer.WriteObject(ms, myObject);
result = Encoding.Default.GetString(ms.ToArray());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.