JSON解析c#获取特定数据

本文关键字:数据 获取 解析 JSON | 更新日期: 2023-09-27 18:11:34

下面是需要正确解析的JSON:

https://docs.acrcloud.com/metadata

我正在试着找到:

歌名,专辑的名字,艺术家。

我试过了:

 JObject o = JObject.Parse(result);            
 Console.WriteLine("Name: " + o["metadata"]["music"]);

,它的工作,但我得到所有的数据在"音乐",我只需要提取特定的数据

JSON解析c#获取特定数据

您可以使用SelectTokensSelectToken用于此目的。它们都支持JsonPATH查询语法,包括通配符:

        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é"
  ]
}