Si vous ne voulez pas modifier la structure de votre classe, vous peut utiliser une coutume JsonConverter
pour obtenir le résultat souhaité:
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"];
}
}
pour l'utiliser, ajoutez un attribut [JsonConverter]
à votre propriété de chaîne comme ceci:
class Foo
{
[JsonConverter(typeof(WrappedStringConverter))]
public string MyRootAttr { get; set; }
}
démo aller-retour ici: https://dotnetfiddle.net/y1y5vb
Peut-être un type anonyme aiderait: https://msdn.microsoft.com/en-us/library/bb397696.aspx –
S'il vous plaît postent vous avez essayé jusqu'à présent. – NickHeidke