Comment embellir JSON avec C# ? Je veux imprimer le résultat dans un contrôle TextBox.
Est-il possible d'utiliser JavaScriptSerializer pour cela, ou dois-je utiliser JSON.net ? Sauf si je dois le faire, j'aimerais éviter de désérialiser la chaîne.
Comment embellir JSON avec C# ? Je veux imprimer le résultat dans un contrôle TextBox.
Est-il possible d'utiliser JavaScriptSerializer pour cela, ou dois-je utiliser JSON.net ? Sauf si je dois le faire, j'aimerais éviter de désérialiser la chaîne.
Avec JSON.Net, vous pouvez embellir la sortie avec un formatage spécifique.
Démo sur dotnetfiddle.
Code
public class Product
{
public string Name {get; set;}
public DateTime Expiry {get; set;}
public string[] Sizes {get; set;}
}
public void Main()
{
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };
string json = JsonConvert.SerializeObject(product, Formatting.None);
Console.WriteLine(json);
json = JsonConvert.SerializeObject(product, Formatting.Indented);
Console.WriteLine(json);
}
Sortir
{"Name":"Apple","Expiry":"2008-12-28T00:00:00","Sizes":["Small"]}
{
"Name": "Apple",
"Expiry": "2008-12-28T00:00:00",
"Sizes": [
"Small"
]
}
ShouldSerializeContractResolver.cs
public class ShouldSerializeContractResolver : DefaultContractResolver
{
public static readonly ShouldSerializeContractResolver Instance = new ShouldSerializeContractResolver();
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
{
JsonProperty property = base.CreateProperty(member, memberSerialization);
return property;
}
}
var beautifyJson= Newtonsoft.Json.JsonConvert.SerializeObject(data, new JsonSerializerSettings()
{
ContractResolver = ShouldSerializeContractResolver.Instance,
NullValueHandling = NullValueHandling.Ignore,
Formatting = Formatting.Indented
});
vous pouvez embellir json avec le code ci-dessus
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.