Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
 Аватар для roach1967
985 / 465 / 234
Регистрация: 27.06.2014
Сообщений: 1,039

Распарсить JSON

27.04.2026, 10:28. Показов 1987. Ответов 41

Студворк — интернет-сервис помощи студентам
Всем здравствуйте.
Есть json-файл такой структуры (кусок для примера) :
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "City" : {
    "latitude": "11.11",
    "longitude": "22.22",
    "mayor": "Ivanov Ivan Ivanovich",
    "population": "90000"
    },
  "Village" : {
    "latitude": "33.33",
    "longitude": "44.44",
    "mayor": "Petrov Petr Petrovich",
    "population": "10000"
    },
  "Settlement" : {
    "latitude": "55.55",
    "longitude": "66.66",
    "mayor": "Sidorov Sidor Sidorovich",
    "population": "500"
    }
}
Как правильно работать с такими данными.
Парсинг в Newtonsoft.Json показывает, что данные валидны. Пробовал таким образом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        private string ReadJSON()
        {
            string path_at = Path.Combine(Environment.CurrentDirectory, "json.json");
            string json_at = File.ReadAllText(path_at);
            JObject data_at = JObject.Parse(json_at);
            JArray jSpell = data_at[""] as JArray;
 
            if (jSpell != null)
            {
                string result = "";
                foreach (JToken j in jSpell)
                {
                    var t_lat = j["latitude"];
                    var t_lon = j["longitude"];
                    result += $"LAT = {t_lat}; LON = {t_lon}\n\r";
                }
                return result;
            }
            return "Пусто!";
        }
Явно, что в 6 строке должна быть другая логика получения массива. Да и нигде нет примеров, как получить при такой структуре наименование каждого элемента (это которые "City", "Village"...).
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.04.2026, 10:28
Ответы с готовыми решениями:

Распарсить с помощью Json.Net приходящий ответ в виде JSON
Нужна помощь с json {"success":true, "rgInventory":{ "1025429056":{...

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object
Всем привет! Помогите, плиз, разобраться с ошибкой: An unhandled exception of type...

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object
Дополнительные сведения: Cannot deserialize the current JSON object (e.g. {"name":"value"}) into...

41
dive
 Аватар для I can
4991 / 4751 / 850
Регистрация: 13.04.2015
Сообщений: 9,993
29.04.2026, 09:44
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от wizard41 Посмотреть сообщение
System.Text.Json вот прям редко вижу..
Так он в Net появился только, а ньютонсофт с фреймворков тянется скорее по привычке.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3458 / 2779 / 575
Регистрация: 04.09.2018
Сообщений: 8,739
Записей в блоге: 3
29.04.2026, 09:51
I can, ну я говорю уже про относительно 'новые' проекты, начиная от Core 6 и выше..
Цитата Сообщение от I can Посмотреть сообщение
тянется скорее по привычке
Ну я о чем выше написал - по привычке )). Не особо видно что все ринулись на систем.текст...
0
 Аватар для Andrey-MSK
3375 / 2261 / 388
Регистрация: 14.08.2018
Сообщений: 7,669
Записей в блоге: 4
29.04.2026, 10:19
wizard41, В ASP Net Core 8+ System.Text.Json используется по умолчанию, на уровне фреймворка.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3458 / 2779 / 575
Регистрация: 04.09.2018
Сообщений: 8,739
Записей в блоге: 3
29.04.2026, 10:33
Andrey-MSK, и что это меняет?
0
HF
 Аватар для HF
1337 / 919 / 202
Регистрация: 09.09.2011
Сообщений: 2,735
Записей в блоге: 2
29.04.2026, 10:39
Цитата Сообщение от wizard41 Посмотреть сообщение
Ну может быть, может быть.. Однако, как не проект какой, что с конфигами, что еще с какими json - всюду ньютонсофт.
System.Text.Json вот прям редко вижу..
В новых проектах? А в старых и пристарелых это конечно ожидаемо. Никто не будет ничего переводить так как "работает не трожь".
Ну и "реклама" срабатывает. В поиске ищешь Json parse и первым эта либа и на стековерфлоу большая часть подсказок старых для этой либы.
Вообщем пока конечно информационная масса на стороне json.net.
1
 Аватар для Andrey-MSK
3375 / 2261 / 388
Регистрация: 14.08.2018
Сообщений: 7,669
Записей в блоге: 4
29.04.2026, 10:51
Цитата Сообщение от wizard41 Посмотреть сообщение
и что это меняет?
Чем больше будет написанных с нуля проектов на NET 8+, процент использования System.Text.Json будет расти
1
332 / 126 / 8
Регистрация: 19.07.2024
Сообщений: 664
29.04.2026, 10:59
Цитата Сообщение от roach1967 Посмотреть сообщение
Есть json-файл такой структуры (кусок для примера) :
А дяди майоры не будут против, что вы, с некоей неизвестной целью(?), не известно по чьему заданию(?) парсите их данные с географическими координатами? Куда потом пойдут эти данные с географическими координатами дядь майоров? Не прилетит ли к ним нечто по распарсенным вами координатам?
И как они отнесутся к тем, кто вам здесь помогал?

PS: Я бы поостерёгся подсказывать что-то по такой теме. В наше немирное время....
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3458 / 2779 / 575
Регистрация: 04.09.2018
Сообщений: 8,739
Записей в блоге: 3
29.04.2026, 11:21
jcxz, Не будут. Mayor с английского - это мэр/глава.
1
 Аватар для roach1967
985 / 465 / 234
Регистрация: 27.06.2014
Сообщений: 1,039
30.04.2026, 08:16  [ТС]
jcxz, на самом деле этот json был набран ручками только, чтобы воспроизвести структуру оригинального файла. Сам файл - это набор формул химических веществ, слямзенный с просторов киберфорума. Там их больше 3000.
Вот уже подправленный оригинал:atomic.rar
К сожалению в оригинале все формулы химических веществ были в нижнем регистре. Поэтому пришлось править в соответствии с правильным написанием. Также не везде указаны названия веществ.
А вот во втором куске, где описаны химические реакции, формулы в нормальном написании.
0
 Аватар для roach1967
985 / 465 / 234
Регистрация: 27.06.2014
Сообщений: 1,039
30.04.2026, 08:21  [ТС]
Вот часть записи:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
[
  {
    "ID": 1131,
    "Spelling": "KSH",
    "Name": "Potassium hydrogensulfide; Potassium hydrosulfide",
    "Mass": "71.158",
    "Weight": "1.68",
    "MeltingTemp": "455",
    "BoilingTemp": "455",
    "Color": "455",
    "IonPower": "455",
    "More": "455",
    "Status": "Solid",
    "ProductsIds": [
      "2829"
    ]
  },
  {
    "ID": 1815,
    "Spelling": "CfCl3",
    "Name": "Californium chloride; Californium trichloride",
    "Mass": "357.359",
    "Weight": "",
    "MeltingTemp": "",
    "BoilingTemp": "",
    "Color": "",
    "IonPower": "",
    "More": "",
    "Status": "",
    "ProductsIds": [
      "3930"
    ]
  },
  {
    "ID": 945,
    "Spelling": "In2Se3",
    "Name": "Diindium triselenide",
    "Mass": "466.52",
    "Weight": "",
    "MeltingTemp": "",
    "BoilingTemp": "",
    "Color": "",
    "IonPower": "",
    "More": "",
    "Status": "",
    "ProductsIds": []
  },
 
****************
 
]
0
dive
 Аватар для I can
4991 / 4751 / 850
Регистрация: 13.04.2015
Сообщений: 9,993
30.04.2026, 08:26
Цитата Сообщение от roach1967 Посмотреть сообщение
Californium chloride
Ну здрасте... Майоры, баллистика... Теперь калифорний
0
332 / 126 / 8
Регистрация: 19.07.2024
Сообщений: 664
30.04.2026, 10:54
Цитата Сообщение от I can Посмотреть сообщение
Ну здрасте... Майоры, баллистика... Теперь калифорний
Ага. А рядом, чуть за кадром, скромно тусуются плутоний с уранием и прочие актиноиды.
Это "оговорочка по Фрейду".

Не по теме:

Аккуратнее надо быть, тов.майор! Коли хотите новую звёздочку на погоны.

0
Заблокирован
30.04.2026, 11:30
Цитата Сообщение от I can Посмотреть сообщение
Теперь калифорний
Вечертема перестает быть томным)
roach1967, товарищ майор, летим на Тау Кита? )

jcxz и другие ребята. Вопрос к вам.
А когда стало преступлением изучение географии(координаты населенных пунктов, информация которых публичная), хим. элементов и соединений и физики, включая ядерную и квантовую?
Когда? Я где то проспал этот момент.
0
HF
 Аватар для HF
1337 / 919 / 202
Регистрация: 09.09.2011
Сообщений: 2,735
Записей в блоге: 2
30.04.2026, 12:27
И в закрепление слов Andrey-MSK, свежайшая новость.
И чем дальше, тем чище будет в зависимостях (кстати сказать. тему я эту поднимал уже).

Ссылка: VSTest is Removing its Newtonsoft.Json Dependency
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3458 / 2779 / 575
Регистрация: 04.09.2018
Сообщений: 8,739
Записей в блоге: 3
30.04.2026, 13:31
HF, убедил . В след. ПО, где нужны будут джейсоны - перейду на System.Text.Json...
Т.с. поддержим "отечественного производителя".
0
HF
 Аватар для HF
1337 / 919 / 202
Регистрация: 09.09.2011
Сообщений: 2,735
Записей в блоге: 2
30.04.2026, 13:46
Цитата Сообщение от wizard41 Посмотреть сообщение
убедил
Я то к этому не через убеждение прихожу. Чтобы приложение сертифицировать, нужно все либы проверить на предмет вшивости. А тебе когда безопасники пишут - что у вас за свалка Дллок в приложении. А ты смотришь, а там действительно шлак какой-то. Одна либа тянет за собой ещё пятОк каких-то странных, или конфликтующих с существующими, библиотек.
Вот жду ещё когда все выпилят из себя SharpZipLib, которую в своё время тоже втыкали везде, даже где она не нужна была.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3458 / 2779 / 575
Регистрация: 04.09.2018
Сообщений: 8,739
Записей в блоге: 3
30.04.2026, 13:59
HF, на самом деле я лично даже не задумывался особо, конкретно над Json: что ньютоновкая либа, что "оригинальная" от MS. Но реально вижу, что ее (ньютона) лепят всюду.
Некоторые вещи действительно можно прокрутить в голове и понять лишь по прошествии времени или наступления каких-л. связанных с ними событий.
А многие реально думают: "а какая разница?"..

Добавлено через 3 минуты
Цитата Сообщение от HF Посмотреть сообщение
Чтобы приложение сертифицировать
Вот это немаловажный фактор!
У меня пока таких заморочек нет, но на всякий надо бы к ним подготовится заранее..
0
 Аватар для Midian
608 / 390 / 198
Регистрация: 31.03.2013
Сообщений: 2,700
01.05.2026, 08:50
Цитата Сообщение от wizard41 Посмотреть сообщение
Однако, как не проект какой, что с конфигами, что еще с какими json - всюду ньютонсофт.
Мб просто проекты старые, когда еще не было System.Text.Json? Если в проекте сериализатор использовался напрямую (а так часто бывает), а не через interface с возможностью гибкой подмены сериализатора, тогда да, очень тяжело будет все переписывать, чтобы перейти на что-то другое. В нормальных проектах это решается через interface, в любой момент можно подкинуть System.Text.Json, или что-то другое, просто реализовав interface
Цитата Сообщение от wizard41 Посмотреть сообщение
8.1 млрд пользователей с этим не согласны.
Это число за все время со дня появления Newtonsoft, на тот момент System.Text.Json еще не было, он появился пару лет назад и очень активно дорабатывается и оптимизируется, на сегодняшний день знаю, что он гораздо быстрее чем Newtonsoft и поставляется из коробки, без подключения библиотек и зависимостей
0
 Аватар для Midian
608 / 390 / 198
Регистрация: 31.03.2013
Сообщений: 2,700
01.05.2026, 08:55
Вот что говорит нейронка:
Миниатюры
Распарсить JSON  
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3458 / 2779 / 575
Регистрация: 04.09.2018
Сообщений: 8,739
Записей в блоге: 3
01.05.2026, 13:19
Midian, да, я уже поизучал вопрос. Действительно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2026, 13:19

Распарсить Json
Всем привет! как распарсить (т.е. прочитать, в класс загнать) такой вот json хитросделанный: ...

Как распарсить JSON
Я получил данные в формате json: WebClient webClient = new WebClient(); WebClient c = new...

Как распарсить такой ответ от vk (json) ?
Здравствуйте! Помогите пожалуйста распарсить ответ от vk. В общем есть такой ответ в формате json:...

Распарсить строку с кодом Json
Добрый день, уважаемые форумчане! Как распарсить следующую строку(нужны данные которые находятся...

Распарсить JSON
{ "server": 622016, "photos_list":...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ По ссылке 403. Не очень информативно такую ссылку постить. Запись от Usaga размещена Сегодня в 06:46 . . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru