Ключи JSON в параметре - C#
Формулировка задачи:
И так, у нас есть некий файл:
Test.json
Выглядит он так:
Мне необходимо считать из objects все ключи (READ_ME_I_AM_VERY_IMPORTANT.txt, icons/icon_16x16.png и т.д.) в одну переменную, и все параметры "hash" этого ключа (0d000710b71ca9aafabd8f587768431d0b560b32, bdf48ef6b5d0d23bbb02e17d04865216179f510a) в другую. А также необходимо подсчитать количество всех ключей в "objects"
Обязательно необходимо использовать цикл
Желательно всё это сделать средствами библиотеки Newtonsoft.Json
Заранее спасибо!
Жду скорейшего ответа!
{
"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
}
}
}Решение задачи: «Ключи JSON в параметре»
textual
Листинг программы
using System.Linq;
using Newtonsoft.Json.Linq;
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 KeysCount = jt.SelectTokens("$..hash").Count(); //количество ключей
var ObjectsKeys = jt.SelectTokens("$.objects").Children().OfType<JProperty>().Select(x=>(x as JProperty).Name); //имена всех элементов в objects
}
}
}