gpt4 book ai didi

c# - 如何自定义映射属性到 JSON

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:23 24 4
gpt4 key购买 nike

所需的 JSON:

"MyRootAttr": {
"value": "My Value"
}

类中的属性定义:

public string MyRootAttr { get; set; }

所以,问题是,如果不定义一个新类,只有一个字符串属性,我怎样才能获得我想要的 JSON?

最佳答案

如果你不想改变你的类结构,你可以使用自定义 JsonConverter达到你想要的结果:

class WrappedStringConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return (objectType == typeof(string));
}

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
string s = (string)value;
JObject jo = new JObject(new JProperty("value", s));
jo.WriteTo(writer);
}

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
JObject jo = JObject.Load(reader);
return (string)jo["value"];
}
}

要使用它,请将 [JsonConverter] 属性添加到您的字符串属性,如下所示:

class Foo
{
[JsonConverter(typeof(WrappedStringConverter))]
public string MyRootAttr { get; set; }
}

此处为往返演示:https://dotnetfiddle.net/y1y5vb

关于c# - 如何自定义映射属性到 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37418649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com