Чтение JSON-файла с помощью Newtonsoft.Json - C#

Узнай цену своей работы

Формулировка задачи:

И так, у нас есть JSon-файл вот такого типа:
Листинг программы
  1. {
  2. "objects": {
  3. "minecraft/sounds/entity/rabbit/attack2.ogg": {
  4. "hash": "4b90ff3a9b1486642bc0f15da0045d83a91df82e",
  5. "size": 7268
  6. },
  7. "minecraft/sounds/entity/rabbit/attack2.ogg": {
  8. "hash": "4b90ff3a9b1486642bc0f15da0045d83a91df82e",
  9. "size": 7268
  10. },
  11. "minecraft/sounds/entity/shulker/close5.ogg": {
  12. "hash": "e555fcece121879fe0becbada9d01dea27ab153d",
  13. "size": 5376
  14. }
  15. }
  16. }
Каким образом можно пропарсить данный JSON, с помощью цикла, который по мере работы будет выводить всё в массив, например, результат моего примера должен быть такой:

minecraft/sounds/entity/rabbit/attack2.ogg 4b90ff3a9b1486642bc0f15da0045d83a91df82e 7268 minecraft/sounds/entity/rabbit/attack2.ogg 4b90ff3a9b1486642bc0f15da0045d83a91df82e и т.д.

Заранее спасибо!

Решение задачи: «Чтение JSON-файла с помощью Newtonsoft.Json»

textual
Листинг программы
  1.     using System.Linq;
  2. using Newtonsoft.Json.Linq;
  3. using System.Collections.Generic;
  4. namespace ConsoleApplication105
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.  
  11.             string s = @"{
  12.  ""virtual"": true,
  13.  ""objects"": {
  14.    ""READ_ME_I_AM_VERY_IMPORTANT.txt"": {
  15.      ""hash"": ""0d000710b71ca9aafabd8f587768431d0b560b32"",
  16.      ""size"": 546
  17.    },
  18.    ""icons/icon_16x16.png"": {
  19.      ""hash"": ""bdf48ef6b5d0d23bbb02e17d04865216179f510a"",
  20.      ""size"": 3665
  21.    },
  22.    ""icons/icon_32x32.png"": {
  23.      ""hash"": ""92750c5f93c312ba9ab413d546f32190c56d6f1f"",
  24.      ""size"": 5362
  25.    },
  26.    ""icons/minecraft.icns"": {
  27.      ""hash"": ""991b421dfd401f115241601b2b373140a8d78572"",
  28.      ""size"": 114786
  29.    }
  30. }
  31. }
  32. ";
  33.             var jt = JToken.Parse(s);
  34.             var fileHashPairs = jt.SelectTokens("$.objects").Children().OfType<JProperty>().
  35.                 Select(x=> new KeyValuePair<string,string>(x.SelectToken("$..hash").ToString(),(x as JProperty).Name)).ToList(); // пары хэш-файл.
  36.  
  37.         }
  38.     }
  39. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут