2017-05-27 87 views
0

我似乎无法正确映射此json网页的类。将JSON int打印到文本框中

using (var webClient = new System.Net.WebClient()) 
     { 
      var json = webClient.DownloadString(@"https://opskins.com/api/user_api.php?request=GetLowestSalePrices&key=bac6e59d7edf4be1529adf53a1a5f8&appid=295110&contextid=1&names=Skin:+Graffiti+Hunting+Rifle"); 
      var jsonData = JsonConvert.DeserializeObject<Items>(json); 

      richTextBox1.Text = jsonData.SkinGraffitiHuntingRifle.ToString(); 
     } 
    } 

{"result":{"appid":295110,"contextid":1,"items":{"Skin: Graffiti Hunting Rifle":11990}}} 

类:

public class Rootobject 
{ 
    public Result result { get; set; } 
} 

public class Result 
{ 
    public int appid { get; set; } 
    public int contextid { get; set; } 
    public Items items { get; set; } 
} 

public class Items 
{ 
    public int SkinGraffitiHuntingRifle { get; set; } 
} 
} 

我不能打印出皮肤的价值:涂鸦猎枪到文本框,返回的字符串是0,因为我没有正确映射。

回答

0

我想你打算在反序列化时使用Rootobject。尝试这个 ;

var jsonData = JsonConvert.DeserializeObject<Rootobject>(json); 
0

嗨SkinGraffitiHuntingRifle映射看起来错了,没有id的属性名称。我们可以为此做一个解决方法。

using (var webClient = new System.Net.WebClient()) 
     { 
      var json = webClient.DownloadString(@"https://opskins.com/api/user_api.php?request=GetLowestSalePrices&key=bac6e59d7edf4be1529adf53a1a5f8&appid=295110&contextid=1&names=Skin:+Graffiti+Hunting+Rifle"); 
      var jsonData = JsonConvert.DeserializeObject<Rootobject>(json); 
      richTextBox1.Text = jsonData.result.items.SkinGraffitiHuntingRifle.ToString(); 
     } 

类别:

public class Rootobject 
{ 
    public Result result { get; set; } 
} 

public class Result 
{ 
    public int appid { get; set; } 
    public int contextid { get; set; } 
    public Items items { get; set; } 
} 

public class Items 
{ 
    [JsonProperty(PropertyName = "Skin: Graffiti Hunting Rifle")] 
    public int SkinGraffitiHuntingRifle { get; set; } 
} 

JsonPropertyName