2016-12-24 3 views
0
//Then 

      client.AddCommand("INFODENSUS88", async (x) => 
       { 
        string html = await new WebClient().DownloadStringTaskAsync("https://www.erevollution.com/en/api/military-unit/177"); 
    //output html is working fine 
        using (var sr = new StringReader(html)) 
        using (var jr = new JsonTextReader(sr)) 
        { 
         var js = new JsonSerializer(); 
         var u = js.Deserialize<RootObject>(jr); 
         Console.WriteLine(u.CommanderName); 
         await x.Message.Parent.SendMessage(u.CommanderName); 
        } 
    //output u.commandername = NULL 
       }); 

OUTPUT = NULL 

Когда я запустить программу, не имеют какой-либо выход/NULL T_T кто-то мне помочь, пожалуйста.C# JSON Deserialize ВЫВОД NULL

+1

Просьба уточнить вашу конкретную проблему или добавить дополнительные сведения, чтобы точно указать, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. –

ответ

0

Html возвращает JSON массив, и вы пытаетесь преобразовать в единый объект, сделайте следующие изменения в коде:

var u = js.Deserialize<RootObject[]>(jr); 
Console.WriteLine(u[0].CommanderName); 
await x.Message.Parent.SendMessage(u[0].CommanderName); 

Здесь я только возвращающие CommanderName первого объекта в массиве.