我正在尝试从返回格式返回数据的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"
}]
我只需要获得第一个track
和artist
条目,在上面的示例中是"跟踪"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;