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

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

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

И так, у нас есть JSon-файл вот такого типа:
{
  "objects": {
    "minecraft/sounds/entity/rabbit/attack2.ogg": {
      "hash": "4b90ff3a9b1486642bc0f15da0045d83a91df82e",
      "size": 7268
    },
   "minecraft/sounds/entity/rabbit/attack2.ogg": {
      "hash": "4b90ff3a9b1486642bc0f15da0045d83a91df82e",
      "size": 7268
    },
    "minecraft/sounds/entity/shulker/close5.ogg": {
      "hash": "e555fcece121879fe0becbada9d01dea27ab153d",
      "size": 5376
    }
  }
}
Каким образом можно пропарсить данный JSON, с помощью цикла, который по мере работы будет выводить всё в массив, например, результат моего примера должен быть такой:

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

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

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

textual
Листинг программы
    using System.Linq;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
namespace ConsoleApplication105
{
    class Program
    {
        static void Main(string[] args)
        {
 
            string s = @"{
  ""virtual"": true,
  ""objects"": {
    ""READ_ME_I_AM_VERY_IMPORTANT.txt"": {
      ""hash"": ""0d000710b71ca9aafabd8f587768431d0b560b32"",
      ""size"": 546
    },
    ""icons/icon_16x16.png"": {
      ""hash"": ""bdf48ef6b5d0d23bbb02e17d04865216179f510a"",
      ""size"": 3665
    },
    ""icons/icon_32x32.png"": {
      ""hash"": ""92750c5f93c312ba9ab413d546f32190c56d6f1f"",
      ""size"": 5362
    },
    ""icons/minecraft.icns"": {
      ""hash"": ""991b421dfd401f115241601b2b373140a8d78572"",
      ""size"": 114786
    }
 }
}
";
            var jt = JToken.Parse(s);
            var fileHashPairs = jt.SelectTokens("$.objects").Children().OfType<JProperty>().
                Select(x=> new KeyValuePair<string,string>(x.SelectToken("$..hash").ToString(),(x as JProperty).Name)).ToList(); // пары хэш-файл.
 
        }
    }
}

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


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

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

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