Я использую веб-интерфейс JSON для предоставления некоторых значений из игрового рынка в объекты c #.Я довольно новичок в c # и раньше не работал с API.
Вот мой код:
using System;
using System.Net;
using System.IO;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
namespace HttpsApiTest
{
class Program
{
public class ForQuery
{
public static bool bid { get; set; }
public static List<int> types { get; set; }
public static List<object> regions { get; set; }
public static List<object> systems { get; set; }
public static int hours { get; set; }
public static int minq { get; set; }
}
public class Buy
{
public static ForQuery forQuery { get; set; }
public static long volume { get; set; }
public static double wavg { get; set; }
public static double avg { get; set; }
public static double variance { get; set; }
public static double stdDev { get; set; }
public static double median { get; set; }
public static double fivePercent { get; set; }
public static double max { get; set; }
public static double min { get; set; }
public static bool highToLow { get; set; }
public static long generated { get; set; }
}
public class ForQuery2
{
public static bool bid { get; set; }
public static List<int> types { get; set; }
public static List<object> regions { get; set; }
public static List<object> systems { get; set; }
public static int hours { get; set; }
public static int minq { get; set; }
}
public class Sell
{
public ForQuery2 forQuery { get; set; }
public static int volume { get; set; }
public static double wavg { get; set; }
public static double avg { get; set; }
public static double variance { get; set; }
public static double stdDev { get; set; }
public static double median { get; set; }
public static double fivePercent { get; set; }
public static double max { get; set; }
public static double min { get; set; }
public static bool highToLow { get; set; }
public static long generated { get; set; }
}
public class RootObject
{
public Buy buy { get; set; }
public Sell sell { get; set; }
}
static void Main(string[] args)
{
string sURL = "https://api.evemarketer.com/ec/marketstat/json?typeid=1230®ionlimit=10000002";
StreamReader objReader = new StreamReader(WebRequest.Create(sURL).GetResponse().GetResponseStream());
string sLine = objReader.ReadLine();
JToken.Parse(sLine.Replace("[", "").Replace("]", "")).ToObject<RootObject>();
Console.WriteLine(Buy.max);
Console.WriteLine(Buy.highToLow);
Console.ReadLine();
}
}
}
и JSON веб-API выводит это:
[
{
"buy": {
"forQuery": {
"bid": true,
"types": [
1230
],
"regions": [],
"systems": [],
"hours": 24,
"minq": 1
},
"volume": 5544790080,
"wavg": 11.43,
"avg": 10.86,
"variance": 4.38,
"stdDev": 2.09,
"median": 12,
"fivePercent": 13.75,
"max": 20,
"min": 5,
"highToLow": true,
"generated": 1551926105235
},
"sell": {
"forQuery": {
"bid": false,
"types": [
1230
],
"regions": [],
"systems": [],
"hours": 24,
"minq": 1
},
"volume": 258207299,
"wavg": 16.8,
"avg": 20.21,
"variance": 132.71,
"stdDev": 11.52,
"median": 15.99,
"fivePercent": 12.92,
"max": 60,
"min": 6,
"highToLow": false,
"generated": 1551926105235
}
}
]
Я не уверен, почему Console.WriteLine(Buy.max);
показывает как 0 вместо 20, а Console.WriteLine(Buy.highToLow);
показывает как ложь вместо истины.Что я делаю неправильно?Последние несколько часов я искал решения этой проблемы, но безрезультатно.Любая помощь будет принята с благодарностью!