我有這個代碼,它從這個 api下載一個字串,然后反序列化它。我已經弄清楚如何訪問“word”和“phonetic”物件,但是我將如何訪問“phonetics”陣列中的“audio”物件,或者“meanings”中的一些物件? 1
private void Button1_Click(object sender, EventArgs e)
{
string result = "";
string link = ($"https://api.dictionaryapi.dev/api/v2/entries/en/hello");
var json = new WebClient().DownloadString(link);
var jsonDes = JsonConvert.DeserializeObject<List<DictionaryAPIResultData>>(json);
foreach (var data in jsonDes)
{
Console.WriteLine( data.phonetics);
}
}
public class DictionaryAPIResultData
{
[JsonProperty("word")]
internal string word { get; set; }
[JsonProperty("phonetics")]
internal List<string> phonetics { get; set; }
}
希望有人能幫忙!
uj5u.com熱心網友回復:
JSON 物件如下所示:
"phonetics":[{"text":"h??l??","audio":"//ssl.gstatic.com/dictionary/static/sounds/20200429/hello--_gb_1.mp3"},{"text":"h??l??"}]
所以只需添加另一個類來表示它并將您的反序列化類更改為
public class DictionaryAPIResultData
{
[JsonProperty("word")]
internal string word { get; set; }
[JsonProperty("phonetics")]
internal List<Phonetics> phonetics { get; set; }
}
public class Phonetics
{
public string text { get; set; }
public string audio { get; set; }
}
JsonProperty 屬性是否僅在您的類屬性與 json 中的屬性名稱不同時才需要,或者如果您將其從小寫更改為大寫
我第一次誤讀了它,所以如果你想播放聲音,這里是答案如何從 C# 中的在線資源播放 .mp3 檔案?...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/372225.html
