我正在与一个API交互,该API的请求包含以下代码段:
"occurrence":{
"type":"XYZ"
}
有一些可以序列化的Newtonsoft JSON魔术,而不是用成员Occurence
创建一个Type
对象
public string Occurence = "XYZ"
变成上面的格式?
答案 0 :(得分:3)
您可以使用自定义JsonConverter从本质上将出现属性的JSON表示形式平整为类型。
class SomeModel
{
[JsonConverter(typeof(OccuranceConverter))]
public string Occurence { get; set; }
}
class OccuranceConverter : JsonConverter<string>
{
public override string ReadJson(JsonReader reader, Type objectType, string existingValue, bool hasExistingValue, JsonSerializer serializer)
{
var json = JObject.Load(reader);
return json.GetValue("type").Value<string>();
}
public override void WriteJson(JsonWriter writer, string value, JsonSerializer serializer)
{
var json = new JObject { ["type"] = value };
json.WriteTo(writer);
}
}