Comment écrire un fichier JSON en C#?
J'ai besoin d'écrire les données suivantes dans un fichier texte en utilisant le format JSON en C#. Les crochets sont importantes pour qu'elles soient valides au format JSON.
[
{
"Id": 1,
"SSN": 123,
"Message": "whatever"
},
{
"Id": 2,
"SSN": 125,
"Message": "whatever"
}
]
Voici ma classe de modèle:
public class data
{
public int Id { get; set; }
public int SSN { get; set; }
public string Message { get; set;}
}
Vous devez vous connecter pour publier un commentaire.
Je recommanderais Json.Net, voir l'exemple ci-dessous:
Ou légèrement plus efficace version du code ci-dessus (ne pas utiliser une chaîne comme un tampon):
Documentation: Serialize JSON dans un fichier
Pourquoi? Voici un fonction de comparaison entre la commune serialisers ainsi que des tests de référence † ‡.
Ci-dessous, un graphique de performance pris de l'article lié:
Ce séparée post, stipule que:
‡.
† Repères semblent être Json.Net 5, la version actuelle (à l'écrit) est de 10. Quelle est la version de la norme .Net serialisers utilisé n'est pas mentionné
‡ Ces tests sont évidemment de la part des développeurs qui maintian la bibliothèque. Je n'ai pas vérifié leurs revendications. En cas de doute, tester vous-même.
JavaScriptSerializer
etDataContractJsonSerializer
classes?serializer.Formatting = Formatting.Indented;
.L'exemple de Liam réponse enregistre le fichier sous forme de chaîne en une seule ligne. Je préfère ajouter une mise en forme. Quelqu'un dans l'avenir pouvez changer certains de la valeur manuellement dans le fichier. Si vous ajouter une mise en forme, il est plus facile de le faire.
Le suivant ajoute de base JSON indentation:
Il y a une fonctionnalité intégrée pour cela à l'aide de la Classe JavaScriptSerializer: