您可以使用SelectTokens
and SelectToken
來實現此目的。他們都支持JsonPATH query syntax包括通配符:
var o = JToken.Parse(result);
var musicInfo = o.SelectTokens("metadata.music[0]")
.Select(t => new
{
SongTitle = (string)t.SelectToken("title"),
AlbumName = (string)t.SelectToken("album.name"),
Artists = t.SelectTokens("artists[*].name").Select(n => (string)n).ToArray()
})
.FirstOrDefault();
然後
Console.WriteLine(JsonConvert.SerializeObject(musicInfo, Formatting.Indented));
打印
{
"SongTitle": "Listen (From the Motion Picture \"Dreamgirls\")",
"AlbumName": "B'Day Deluxe Edition",
"Artists": [
"Beyoncé"
]
}
這是你想要的。
來源
2015-09-06 04:04:33
dbc
然後取出您的「具體數據」! – cubrr
我不知道@cubrr是如何檢查JSON的,有點複雜 – user3181034
那麼,你已經從「元數據」中獲得了「音樂」。現在重複這個過程,從「音樂」中獲得「標題」。它看起來像對象是在一個數組中,儘管這樣'o [「metadata」] [「music」] [0]'會讓你訪問實際的對象。 – cubrr