Не пойму какой ответ Json нужен

139
26 декабря 2020, 02:30

Скинули код и попросили помочь. Какой ответ должен парсить этот код Newtonsoft Json? Помогите, пожалуйста

public static void SetExchangePrices(JToken prices)
{
    priceLikesSell = Convert.ToDouble(prices[(object)"sell"][(object)"likes"].ToString());
    priceFollowersSell = Convert.ToDouble(prices[(object)"sell"][(object)"followers"].ToString());
    priceRepostSell = Convert.ToDouble(prices[(object)"sell"][(object)"repost"].ToString());
    priceLikesBuy = Convert.ToDouble(prices[(object)"buy"][(object)"likes"].ToString());
    priceFollowersBuy = Convert.ToDouble(prices[(object)"buy"][(object)"followers"].ToString());
    priceRepostBuy = Convert.ToDouble(prices[(object)"buy"][(object)"repost"].ToString());
}

Такой ответ не подходит:

{
  "prices": [
    {
      "sell": {
        "likes": "12345",
        "followers": "12345",
        "repost": "12345"
      },
      "buy": {
        "likes": "12345",
        "followers": "12345",
        "repost": "12345"
      }
    }
  ]
}

Какой должен выдавать ответ сервер для парсинга с помощью кода выше, подскажите, пожалуйста?

Answer 1

Если без изменения кода, то взгляните внимательней на строку:

prices[(object)"sell"][(object)"likes"]

У вас есть некий корневой JToken объект prices в котором вы берете sell, из которого берете likes.
Если у вас только этот код и вы дальше нечего не будете писать, то здесь вы не указываете на массив prices из JSON, а значит он у вас лишний и верным будет следующий вариант:

{
  "sell": {
    "likes": "12345",
    "followers": "12345",
    "repost": "12345"
  },
  "buy": {
    "likes": "12345",
    "followers": "12345",
    "repost": "12345"
  }
}

Но я очень советую вашему "другу" привести все в порядок, создать правильную структуру классов и работать с ней!

READ ALSO
Как оптимизировать код, может шаблоном?

Как оптимизировать код, может шаблоном?

Всем приветЕсть 5 инструментов и мне нужно с ними делать всякие стандартные вещи добавлять/удалять/изменять/показать их в таблице

128
C# SQL поиск по таблице

C# SQL поиск по таблице

Не могу понять, в чем проблема, где-то накосячила с запросом, но не могу понять, где

119
Как преобразовать форматированные даты в цифры (3.12M)

Как преобразовать форматированные даты в цифры (3.12M)

Допустим строка 3,12КЯ хочу преобразовать его в норм число

132
Запрет на ввод своего значения в Combobox

Запрет на ввод своего значения в Combobox

Когда пользователь выбирает элемент из списка в Combobox, он может ввести и свое значение, выглядит это так:

112