我有以下模型结构。在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