Ключи JSON в параметре - C#

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

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

И так, у нас есть некий файл: Test.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
    }
 }
}
Мне необходимо считать из objects все ключи (READ_ME_I_AM_VERY_IMPORTANT.txt, icons/icon_16x16.png и т.д.) в одну переменную, и все параметры "hash" этого ключа (0d000710b71ca9aafabd8f587768431d0b560b32, bdf48ef6b5d0d23bbb02e17d04865216179f510a) в другую. А также необходимо подсчитать количество всех ключей в "objects" Обязательно необходимо использовать цикл Желательно всё это сделать средствами библиотеки Newtonsoft.Json Заранее спасибо! Жду скорейшего ответа!

Решение задачи: «Ключи 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
 
        }
    }
}

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


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

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

8   голосов , оценка 3.875 из 5