从First JsonArray获取特定数据



我正在尝试从返回格式返回数据的API获取数据:

[{
    "song": {
        "id": 12345,
        "track": "TRACK A",
        "artist": "ARTIST A"
    },
    "playedtime": "2018-02-14T09:07:15.976"
}, {
    "song": {
        "id": 54321,
        "track": "TRACK B",
        "artist": "ARTIST B"
    },
    "playedtime": "2018-02-14T09:03:29.355"
}]

我只需要获得第一个trackartist条目,在上面的示例中是"跟踪"one_answers"艺术家A"。

到目前为止,我所做的可能是真正错的是:

string response = await client.GetStringAsync(uri);
JArray parser = JArray.Parse(response);
rootTrack = JObject.Parse(parser.First.ToString())["track"].ToString();
rootArtist = JObject.Parse(parser.First.ToString())["artist"].ToString();

我建议创建数据的C#表示您的数据的表示:

public class Song
{
    [JsonProperty("id")]
    public int Id { get; set; }
    [JsonProperty("track")]
    public string Track { get; set; }
    [JsonProperty("artist")]
    public string Artist { get; set; }
}
public class PlayListItem
{
    [JsonProperty("song")]
    public Song Song { get; set; }
    [JsonProperty("playedtime")]
    public DateTime PlayedTime { get; set; }
}

然后,您可以使用JSON.NET对您的JSON数据进行估算并访问所需的属性:

List<PlayListItem> playList = JsonConvert.DeserializeObject<List<PlayListItem>>(response);
PlayListItem firstItem = playList.First();
string track = firstItem.Song.Track;
string artist = firstItem.Song.Artist;

最新更新