如何解决我一生无法引用另一个类的列表内的变量
我正在尝试设置变量def,以将Definition的值包含在Definition Class中 这是我要参考的课程。
public class Definition
{
public string type { get; set; }
//need to get this to def in PlayButton event
public string definition { get; set; }
public string example { get; set; }
public string image_url { get; set; }
public object emoji { get; set; }
}
public class Root
{
public List<Definition> definitions { get; set; }
public string word { get; set; }
public string pronunciation { get; set; }
}
我需要在事件中包含def变量,但我不知道如何做,为此,我必须引用DeserializedJSON
变量,因为它是从那里将JSON解析到该类中的,但是我找不到一个从DeserializedJSON
到defs
的方式:
//Click PlayButton event
public async void PlayButton_Click(object sender,MouseButtonEventArgs e)
{
//Changing From Start Screen Grid To Quiz Screen Grid
QuizScreen.Visibility = Visibility.Visible;
StartScreen.Visibility = Visibility.Collapsed;
//Running game logic once to start game up
string word = RandomWord();
definitionUnformatted = await Define(word);
//Deserialising JSON
Root DeserializedJSON = JsonConvert.DeserializeObject<Root>(definitionUnformatted);
string def = //help here pls
DefinitionBox.Text = def;
}
非常感谢您的帮助,我只是希望这是我正在学习的一个简单的疏忽。
编辑:@crowcoder请求提供JSON示例
{
"definitions": [
{
"type": "noun","definition": "something shaped like a platter,in particular:","example": "dig out some old platters","image_url": null,"emoji": null
},{
"type": "noun","definition": "a large flat dish or plate for serving food.","example": "arrange the fruit on a serving platter","image_url": "https://media.owlbot.info/dictionary/images/kkkki.jpg.400x400_q85_box-0,360,360_crop_detail.jpg","emoji": null
}
],"word": "platter","pronunciation": "ˈpladər"
}
解决方法
据我了解,您正在构建猜词游戏。您可以从外部API获取单词的定义,并希望获取需要分配给def
的第一个定义。
由于definitions
是List<Definition>
,请使用索引器获取第一项。
string def = DeserializedJSON.definitions[0].definition;
或者,使用Linq的First
方法。
string def = DeserializedJSON.definitions.First().definition;
请注意,您的Root
类包含类型为definitions
的属性List<Definition>
,这意味着您也可以有多个定义或根本没有定义。如果有多个定义,则需要决定选择哪个。
下面的代码会预先检查列表是否不是null
以及列表中是否有定义。否则,如果列表为null
或访问第一个项目(如果没有没有定义的情况下),则会出现异常。
if (DeserializedJSON.definitions != null && DeserializedJSON.definitions.Count > 0)
def = DeserializedJSON.definitions[0].definition;
else
def = "No definition found";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。