powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как бы десериализовать Json
14 сообщений из 14, страница 1 из 1
как бы десериализовать Json
    #39851889
Вакан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как лучше десериализовать message https://poloniex.com/public?command=returnTicker
Можно
Код: c#
1.
JObject jObj = JObject.Parse(message);


Но не хочется в дальнейшем вести поиск по строковым данным типа
Код: c#
1.
decimal ask = decimal.Parse((string)r1.Value["lowestAsk"], nfi);


А чтобы воспользоваться в данном случае JsonConvert.DeserializeObject нужно создать уйму классов.
Может есть еще какие-нибудь варианты?
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39851892
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВаканМожет есть еще какие-нибудь варианты?Конечно. Напишите свой и перегоните все в dataset.
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39851966
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВаканА чтобы воспользоваться в данном случае JsonConvert.DeserializeObject нужно создать уйму классов.
Может есть еще какие-нибудь варианты?
Не так страшен черт, как его малюют!
http://json2csharp.com/
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852041
betelgeizex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852067
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капец народ ленивый стал! надо много классов создать, беда то какая! кнопки надо давить, а так хочется мышкой программировать
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852078
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВаканКак лучше десериализовать message https://poloniex.com/public?command=returnTicker
...
А чтобы воспользоваться в данном случае JsonConvert.DeserializeObject нужно создать уйму классов.
Откуда возьмётся уйма классов? Все узлы одинаковые, значит будет один-единственный класс. И Dictionary.
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852098
Вакан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Кнопочки Спасибо здесь нет?
petalvikОткуда возьмётся уйма классов? Все узлы одинаковые, значит будет один-единственный класс. И Dictionary.
Чтобы сделать словарь с одним классом нужен ручной парсинг строки или есть какой-то метод?
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852107
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class Rate
{
    public int id { get; set; }
    public string last { get; set; }
    public string lowestAsk { get; set; }
    public string highestBid { get; set; }
    public string percentChange { get; set; }
    public string baseVolume { get; set; }
    public string quoteVolume { get; set; }
    public string isFrozen { get; set; }
    public string high24hr { get; set; }
    public string low24hr { get; set; }
}



Код: c#
1.
var dict = JsonConvert.DeserializeObject<Dictionary<string, Rate>>(json);
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852108
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Естественно, поменять, где нужно, string на decimal и т. п.

Также поменять имена свойств на PascalCase. Атрибут JsonProperty в помощь.
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852226
Вакан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо. То что надо. Вы под "поменять, где нужно, string на decimal" имели в виду парсинг при получении значений из словаря?
Код: c#
1.
2.
3.
4.
5.
6.
foreach (var v in dict)
            {
                //
                var ask = decimal.Parse(v.Value.lowestAsk, nfi);
                //
            }
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852300
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
[JsonProperty("lowestAsk")]
public decimal Ask { get; set; }
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852374
Вакан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
Нет ли какого-нибудь свойства у JSON, чтобы при var dict = JsonConvert.DeserializeObject<Dictionary<string, Rate>>(json); сразу происходила замена идентичная применению атрибута [JsonProperty("lowestAsk")]?
Дело в том, что есть несколько классов, в каждом из которых есть класс Rate и в каждом из этих Rate и те же decimal ask { get; set; } decimal bid { get; set; } decimal vol { get; set; } и других свойств нет. Каждый Rate одинаково в программе обрабатывается. Чтобы уменьшить количество кода хотелось бы, чтобы класс Rate был один. Но сделать это мешать то, что в каждом Rate разные атрибуты свойств: к примеру у одного [JsonProperty("lowestAsk")], у другого [JsonProperty("best_ask")]. Или в таком случае можно делать одинаковую обработку, только применяя dynamic в методе обрабатывающим разные Rate?
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852382
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВаканКак лучше десериализовать message https://poloniex.com/public?command=returnTicker
Можно
Код: c#
1.
JObject jObj = JObject.Parse(message);


Но не хочется в дальнейшем вести поиск по строковым данным типа
Код: c#
1.
decimal ask = decimal.Parse((string)r1.Value["lowestAsk"], nfi);


А чтобы воспользоваться в данном случае JsonConvert.DeserializeObject нужно создать уйму классов.
Может есть еще какие-нибудь варианты?

задачу опиши нормально. хрень какая-то
...
Рейтинг: 0 / 0
как бы десериализовать Json
    #39852384
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
массив плоских объектов, десериализуется ньютоном на раз
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как бы десериализовать Json
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]