Чтение JSON-файла с помощью Newtonsoft.Json - C#
Формулировка задачи:
И так, у нас есть JSon-файл вот такого типа:
Каким образом можно пропарсить данный 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
}
}
}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(); // пары хэш-файл.
}
}
}