Десериализация Kraken JSON в C#
Раньше я загружал данные из API Cryptocompare. Этот пост получил мне то, что я хотел для Cryptocompare.
Разбор Cryptocompare данных API Json в C#
Тем не менее, я заметил, что этот API не пуленепробиваемый, он не всегда возвращает ответ. Поэтому я хочу использовать сам Кракен.
Сейчас я пытаюсь десериализовать новый JSON, но это не так просто, как в JSON Cryptocompare.
Вот пример JSON:
https://api.kraken.com/0/public/OHLC?pair=ETHUSD&interval=30
{"error":[],"result":{"XETHZUSD":[[1519236000,"825.94","846.00","825.94","845.00","835.62","858.29381033",708],[1519237800,"846.00","848.84","835.55","836.00","844.31","647.42747317",731],[1519239600,"836.00","841.09","830.76","834.89","835.13","1051.44905097",609],[1520530200,"706.24","710.43","701.90","704.59","707.70","1763.41692283",459]],"last":1520528400}}
Я не смог десериализовать этот JSON.
Решено!!!
окончательное решение:
var Results_Exchange_Kraken = JsonConvert.DeserializeObject<DataRoot_Kraken>(Content_Exchange_Kraken);
var price_data_kraken = Results_Exchange_Kraken.result.XETHZUSD;
public class Kraken_Result
{
public List<List<object>> XETHZUSD { get; set; }
public int last { get; set; }
}
public class DataRoot_Kraken
{
public List<object> error { get; set; }
public Kraken_Result result { get; set; }
}
Спасибо! Я добавлю в закладки URL.
1 ответ
Решение
Используйте эту модель для десериализации ваших данных
public class Result
{
public List<List<object>> XETHZUSD { get; set; }
public int last { get; set; }
}
public class RootObject
{
public List<object> error { get; set; }
public Result result { get; set; }
}
Модель, сгенерированная генератором моделей
Затем используйте NewtonSoft для C# для десериализации ваших данных
Например
RootObject tmp = JsonConvert.DeserializeObject<RootObject>("JSON String here");
окончательное решение:
var Results_Exchange_Kraken = JsonConvert.DeserializeObject<DataRoot_Kraken>(Content_Exchange_Kraken);
var price_data_kraken = Results_Exchange_Kraken.result.XETHZUSD;
public class Kraken_Result
{
public List<List<object>> XETHZUSD { get; set; }
public int last { get; set; }
}
public class DataRoot_Kraken
{
public List<object> error { get; set; }
public Kraken_Result result { get; set; }
}