C#无法反序列化当前JSON对象(Newtonsoft)

C#无法反序列化当前JSON对象(Newtonsoft),c#,arrays,json,http,object,C#,Arrays,Json,Http,Object,如何将此数组作为字符串获取?不幸的是(我是初学者),我只知道如何得到数组或对象,而不知道如何“混合” 公共类TrackContent { [JsonProperty(“曲目”)]公共相册{get;set;} } 公开课相册 { [JsonProperty(“album”)]public CoverImage CoverImage{get;set;} } 公共类封面图片 { [JsonProperty(“图像”)]公共编号{get;set;} } 公共课号 { [JsonProperty(“3”

如何将此数组作为字符串获取?不幸的是(我是初学者),我只知道如何得到数组或对象,而不知道如何“混合”

公共类TrackContent
{
[JsonProperty(“曲目”)]公共相册{get;set;}
}
公开课相册
{
[JsonProperty(“album”)]public CoverImage CoverImage{get;set;}
}
公共类封面图片
{
[JsonProperty(“图像”)]公共编号{get;set;}
}
公共课号
{
[JsonProperty(“3”)]公共图像URL图像URL{get;set;}
}
公共类ImageUrl
{
[JsonProperty(“#text”)]公共字符串名称{get;set;}
}
私有静态void Main(字符串[]args)
{
常量字符串auth=”http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=XXXXXXXXXXXXXXXXXXX&artist=Ariana%20Grande&track=One%20Last%20Time&format=json";
var httpClient=新的httpClient();
var jsonInfo=httpClient.GetStringAsync(auth);
var deserializeJson=JsonConvert.DeserializeObject(jsonInfo.Result);
WriteLine(反序列化json.Album.CoverImage.Number.ImageUrl.Name);
}

我建议使用这样的工具从JSON字符串生成C#类

这将为您提供所需的类,然后您可以使用Newtonsoft反序列化“RootObject”

编辑:
如果你想走另一条路,那么这个工具会很有帮助

公共类可流化
{
[JsonProperty(“#text”)]公共字符串文本{get;set;}
公共字符串完整跟踪{get;set;}
}
公共级艺术家
{
公共字符串名称{get;set;}
公共字符串mbid{get;set;}
公共字符串url{get;set;}
}
公众阶级形象
{
[JsonProperty(“#text”)]公共字符串文本{get;set;}
公共字符串大小{get;set;}
}
公共类属性
{
公共字符串位置{get;set;}
}
公开课相册
{
公共字符串艺术家{get;set;}
公共字符串标题{get;set;}
公共字符串mbid{get;set;}
公共字符串url{get;set;}
公共列表映像{get;set;}
[JsonProperty(“@attr”)]public attr attr{get;set;}
}
公共类标签
{
公共字符串名称{get;set;}
公共字符串url{get;set;}
}
公共类Toptags
{
公共列表标记{get;set;}
}
公共类轨道
{
公共字符串名称{get;set;}
公共字符串mbid{get;set;}
公共字符串url{get;set;}
公共字符串持续时间{get;set;}
公共可流式处理{get;set;}
公共字符串侦听器{get;set;}
公共字符串播放计数{get;set;}
公共艺术家{get;set;}
公共相册相册{get;set;}
公共Toptags Toptags{get;set;}
}
公共类根对象
{
公共轨道轨道{get;set;}
}
然后:

var deserializeJson=JsonConvert.DeserializeObject(jsonInfo.Result);
Console.WriteLine(反序列化json.Album.image[3].text);
编辑: 这样,您就可以将来自API的任何JSON响应反序列化到C#RootObject中,并可以访问您想要的任何属性/值


如果这是您的实际API密钥?如果是的话,我会删除这个问题并创建一个新的问题,在那里它被编辑。编辑该问题没有帮助,因为历史记录仍然可用。嗨,库克斯,如果我的解决方案有效,请将其标记为正确答案。我很高兴能帮上忙
    public class TrackContent
    {
        [JsonProperty("track")] public Album Album { get; set; }
    }

    public class Album
    {
        [JsonProperty("album")] public CoverImage CoverImage { get; set; }
    }

    public class CoverImage
    {
        [JsonProperty("image")] public Number Number { get; set; }
    }

    public class Number
    {
        [JsonProperty("3")] public ImageUrl ImageUrl { get; set; }
    }

    public class ImageUrl
    {
        [JsonProperty("#text")] public string Name { get; set; }
    }

    private static void Main(string[] args)
    {
        const string auth = "http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=XXXXXXXXXXXXXXXXXXX&artist=Ariana%20Grande&track=One%20Last%20Time&format=json";

        var httpClient = new HttpClient();
        var jsonInfo = httpClient.GetStringAsync(auth);
        var deserializeJson = JsonConvert.DeserializeObject <TrackContent>(jsonInfo.Result);
        Console.WriteLine(deserializeJson.Album.CoverImage.Number.ImageUrl.Name);
    }
public class Streamable
{
    [JsonProperty("#text")] public string text { get; set; }
    public string fulltrack { get; set; }
}

public class Artist
{
    public string name { get; set; }
    public string mbid { get; set; }
    public string url { get; set; }
}

public class Image
{
    [JsonProperty("#text")] public string text { get; set; }
    public string size { get; set; }
}

public class Attr
{
    public string position { get; set; }
}

public class Album
{
    public string artist { get; set; }
    public string title { get; set; }
    public string mbid { get; set; }
    public string url { get; set; }
    public List<Image> image { get; set; }
    [JsonProperty("@attr")] public Attr attr { get; set; }
}

public class Tag
{
    public string name { get; set; }
    public string url { get; set; }
}

public class Toptags
{
    public List<Tag> tag { get; set; }
}

public class Track
{
    public string name { get; set; }
    public string mbid { get; set; }
    public string url { get; set; }
    public string duration { get; set; }
    public Streamable streamable { get; set; }
    public string listeners { get; set; }
    public string playcount { get; set; }
    public Artist artist { get; set; }
    public Album album { get; set; }
    public Toptags toptags { get; set; }
}

public class RootObject
{
    public Track track { get; set; }
}
var deserializeJson = JsonConvert.DeserializeObject<RootObject>(jsonInfo.Result);
Console.WriteLine(deserializeJson.Album.image[3].text);