Introduction:
JSON (nom complet JavaScript ObjectNotation) est un format d'échange de données léger. Il est basé sur un sous-ensemble de la norme de syntaxe JavaScript. JSON est un format de texte totalement indépendant de la langue qui peut être facilement transféré sur divers réseaux, plates-formes et programmes. La syntaxe de JSON est simple, facile à lire et à écrire pour les humains, et facile à analyser et à générer pour les machines.
Télécharger le package NuGet
La première étape pour faire fonctionner JSON en C# est de télécharger le package NuGet requis Newtonsoft.Json. Il convient de noter que dans la même solution, différents types de packages Nuget téléchargés doivent être conservés dans la même version, sinon une erreur peut être signalée.
désérialisation
Chaîne chaîne convertie en classe
créer d'abord une classe
public class Site
{
public int Id { get; set; }
public string Name { get; set; }
}
Convertissez la chaîne en une classe d'entité, puis imprimez-la via la classe d'entité
[Test]
public void TestJsonToObject()
{
string json = "{\"Id\":1,\"Name\":\"爱吃香蕉的阿豪\"}";
var site = JsonConvert.DeserializeObject<Site>(json) as Site;
Console.WriteLine($"Id={site.Id}");
Console.WriteLine("Nmae="+site.Name);
}
fichier json dans la classe
Dans le travail réel, lorsque nous avons beaucoup de contenu json, il est impossible de l'écrire dans la classe, nous devons donc l'écrire dans un fichier json, puis le faire passer par le chemin
Créer une classe de données
public class JsonData
{
public List<Data> data { get; set; }
}
public class Data
{
public int id { get; set; }
public string name { get; set; }
}
Créer un fichier json
{
"data": [
{
"id" : 1,
"name" : "爱吃香蕉的阿豪"
},
{
"id" : 2,
"name" : "张三"
},
{
"id" : 3,
"name" : "李四"
}
]
}
classe d'essai
[Test]
public void TestJsonText()
{
var json = File.ReadAllText(@"D:\project\c#\Solution\Project\JSON\data.json");
var JsonData = JsonConvert.DeserializeObject<JsonData>(json);
foreach (var data in JsonData.data)
{
Console.WriteLine("id="+data.id + " data="+data.name);
}
}
Sérialisation
Suivez la classe Site désérialisée, créez d'abord une nouvelle classe, définissez la valeur du champ, puis sérialisez-la dans une chaîne et imprimez-la
[Test]
public void TestObjectToJson()
{
Site site = new() { Id = 2, Name = "laowan" };
var serializeObject = JsonConvert.SerializeObject(site);
Console.WriteLine(serializeObject);
}