我有以下模型結構。在C中使用newtonsoft的JSON序列化#
public class ReferenceData
{
public string Version { get; set; }
public List<DataItem> Data { get; set; }
}
public class DataItem
{
public Dictionary<string, string> Item { get; set; }
}
在詞典我添加的關鍵值對和與KeyValuePairConverter
設置串行化。
var settings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
NullValueHandling = NullValueHandling.Ignore,
Converters = new List<JsonConverter>() { new KeyValuePairConverter() }
};
var object = Newtonsoft.Json.JsonConvert.SerializeObject(
referenceData,
Formatting.None,
settings
);
和輸出是,
{
"data":[
{
"item":{
"ShortDescription":"Lorem ipssumm",
"Title":"some text",
"PlanType":"ZEROP",
}
},
{
"item":{
"ShortDescription":"Lorem ipssumm",
"Title":"some text",
"PlanType":"ZEROP",
}
},
{
"item":{
"ShortDescription":"Lorem ipssumm",
"Title":"some text",
"PlanType":"ZEROP",
}
}
]
}
如果我們不想item
在序列化的字符串來表現,需要什麼樣的設置在JsonSerializerSettings
做或有任何其他的方式做那。
請注意,我不能改變模型結構,因爲它是必需的。
輸出應該是:
{
"data":[
{
"ShortDescription":"Lorem ipssumm",
"Title":"some text",
"PlanType":"ZEROP"
},
{
"ShortDescription":"Lorem ipssumm",
"Title":"some text",
"PlanType":"ZEROP"
},
{
"ShortDescription":"Lorem ipssumm",
"Title":"some text",
"PlanType":"ZEROP"
}
]
}
有了這個,我可以實現的,但Visual Studio代碼分析會顯示一個錯誤,不使用使用嵌套的通用列表。 CA1006:不要在會員簽名中嵌套泛型類型 - – PaRsH
只是一個警告,隨它去吧。它的罰款 – Mert
我不能。這不應該被壓制。這些是我們在項目中的指導原則。 – PaRsH