Maison >développement back-end >C++ >Comment désérialiser le mieux les données de l'API Kazaa dans des objets .NET à l'aide de NewTonsoft?
Désérialisez JSON en objet .NET à l'aide de Newtonsoft
Question :
Je ne parviens pas à désérialiser les données JSON récupérées de l'API Kazaa en un objet .NET significatif. J'ai essayé d'utiliser Newtonsoft.Json.JsonConvert.DeserializeObject pour le convertir en List
Réponse JSON :
<code class="language-json">{ "page": 1, "total_pages": 8, "total_entries": 74, "q": "muse", "albums": [ { "name": "Muse", "permalink": "Muse", "cover_image_url": "http://image.kazaa.com/images/69/01672812 1569/Yaron_Herman_Trio/Muse/Yaron_Herman_Trio-Muse_1.jpg", "id": 93098, "artist_name": "Yaron Herman Trio" }, { "name": "Muse", "permalink": "Muse", "cover_image_url": "http://image.kazaa.com/images/54/888880301154/Candy_Lo/Muse/Candy_Lo-Muse_1.jpg", "id": 102702, "artist_name": "\u76e7\u5de7\u97f3" }, // ... ], "per_page": 10 }</code>
Solution utilisant LINQ to JSON de Newtonsoft :
Pour cette situation, LINQ to JSON de Newtonsoft est un choix approprié car il vous permet d'interroger les données JSON directement de manière orientée objet. Voici un exemple de code :
<code class="language-csharp">using Newtonsoft.Json.Linq; var client = new WebClient(); var stream = client.OpenRead("http://api.kazaa.com/api/v1/search.json?q=muse&type=Album"); var reader = new StreamReader(stream); var jObject = JObject.Parse(reader.ReadLine()); // 访问特定的封面图像URL Console.WriteLine((string)jObject["albums"][0]["cover_image_url"]); stream.Close();</code>
Approche simplifiée utilisant le typage dynamique C# :
Vous pouvez simplifier davantage le processus de désérialisation en utilisant le typage dynamique C#, qui vous permet de traiter les données JSON sans spécifier explicitement le type d'objet. Voici un exemple de code :
<code class="language-csharp">using Newtonsoft.Json; dynamic results = JsonConvert.DeserializeObject<dynamic>(json); var albumCoverUrl = results.albums[0].cover_image_url;</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!