Как я могу разобрать строку JSON, которая приведет к незаконным идентификаторам C #?
Я использую библиотеку NewtonSoft JSON Convert для анализа и преобразования строки JSON в объекты C #. Но теперь я столкнулся с действительно неудобной строкой JSON, и я не могу преобразовать ее в объект C #, потому что я не могу сделать class C # из этой строки JSON.
Вот строка JSON
{ "1": { "fajr": "04:15", "sunrise": "05:42", "zuhr": "12:30", "asr": "15:53", "maghrib": "19:18", "isha": "20:40" }, "2": { "fajr": "04:15", "sunrise": "05:42", "zuhr": "12:30", "asr": "15:53", "maghrib": "19:18", "isha": "20:41" } }
Класс C #, необходимый для синтаксического анализа этой строки JSON, должен выглядеть следующим образом:
- JSON.NET как сериализатор OAP для WebAPI 2 и ODataMediaTypeFormatter
- Как использовать JSON.NET для десериализации в вложенный / рекурсивный словарь и список?
- Как игнорировать неизвестные значения enum во время десериализации json?
- Как программно выбирать конструктор во время десериализации?
- Json.Net - Сериализовать имя свойства без кавычек
public class 1 { public string fajr { get; set; } public string sunrise { get; set; } public string zuhr { get; set; } public string asr { get; set; } public string maghrib { get; set; } public string isha { get; set; } } public class 2 { public string fajr { get; set; } public string sunrise { get; set; } public string zuhr { get; set; } public string asr { get; set; } public string maghrib { get; set; } public string isha { get; set; } }
Но он не может быть истинным classом C #, потому что мы знаем, что имена classов не могут начинаться с числа.
Будет действительно здорово, если кто-нибудь может предложить, как разбирать такой тип строки json.
- C # JSON.NET - десериализация ответа, использующего необычную структуру данных
- Десериализация JSON с использованием JSon.NET с динамическими данными
- Как использовать Json.NET для JSON-моделирования в проекте MVC5?
- Не удалось загрузить файл или сборку «Newtonsoft.Json» или одну из его зависимостей. Определение манифеста не соответствует ссылке на сборку
- Каков правильный способ использования JSON.NET для анализа streamа объектов JSON?
- Как конвертировать JSON в XML или XML в JSON?
- Ошибка JSON.NET Локальный цикл привязки для типа
- Информация о сериализации типов кеша Json.NET?
Вы можете десериализовать словарь.
public class Item { public string fajr { get; set; } public string sunrise { get; set; } public string zuhr { get; set; } public string asr { get; set; } public string maghrib { get; set; } public string isha { get; set; } }
var dict = JsonConvert.DeserializeObject>(json);
Хотя словарь является лучшим решением для конкретного случая, который у вас был, вопрос, который вы задали, также может быть интерпретирован как:
как я десериализую объекты с именами свойств, которые нельзя использовать в C #?
Например, что, если бы вы
{ "0": "04:15", "zzz": "foo" }
Решение: используйте annotations:
public class Item { [JsonProperty("0")] public string AnyName { get; set; } [JsonProperty("zzz")] public string AnotherName { get; set; } }