c# - 在统一 3d 中使用键读取 json
问题描述
我正在统一 3d 中制作字典游戏。我有一个关于所有词汇的所有定义和示例的 json 文件。每个单词都有键是它自己的单词(我突出显示)。我怎样才能得到每个单词(键)的值。我为 json 创建了一个对象。
例如:我有一个单词“a cappella”,它给了我回复:
清唱
1:副词
定义:无伴奏
例子:他们演奏了无伴奏合唱
2:形容词
定义:没有乐器伴奏的歌曲
示例:他们演唱了无伴奏合唱弥撒。
非常感谢
这是我用于 JSON 的模型
public class VocabularyModel : MonoBehavior
{
public string Word { get; set; }
public string WordId {get; set; }
public Meaning[] Meanings { get; set; }
public Label[] Labels { get; set; }
}
json字符串
{“无伴奏合唱”:{“单词”:“无伴奏合唱”,“wordset_id”:“5feb6f679a”,“含义”:[{“id”:“492099d426”,“def”:“没有音乐伴奏”,“示例": "他们进行了无伴奏合唱", "speech_part": "adverb" }, { "id": "0bf8d49e2e", "def": "无伴奏演唱", "example": "他们演唱了无伴奏合唱弥撒" , "speech_part": "形容词" } ] }, "AD": { "word": "AD",“wordset_id”:“76c6ebfae9”,“含义”:[ {“id”:“4c21c72afa”,“def”:“在基督教时代”,“speech_part”:“副词”,“同义词”:[“AD”, “anno Domini”] } ] },“AD”:{“word”:“AD”,“wordset_id”:“b7e9d406a0”,“含义”:[{“id”:“a7482f3e30”,“def”:“in基督教时代”,“speech_part”:“副词”,“同义词”:[ “广告” ] } ] }
}
解决方案
您是在使用库还是自己编写代码?
在第二种情况下,我建议使用 Newtonsoft 的 Json.NET。
您可以将 JSON 反序列化为 JObject,然后将其视为字典。
为此,您可以按以下方式构建 JSON:
{
"a_cappella" : {
"word" : "a cappella",
"wordId" : "123",
"meanings" : {...},
"labels" : {...}
}
"building" : {
"word" : "building",
"wordId" : "124",
"meanings" : {...},
"labels" : {...}
}
}
然后你反序列化成一个 JObject 并搜索你需要的东西:
var json = // here is your json string
var dictionary = JsonConvert.DeserializeObject(json);
if (dictionary.ContainsKey("a_cappella")){
return dictionary["a_cappella"].ToObject<VocabularyModel>();
}
推荐阅读
- mysql - 如何将重达 166MB 的数据库导入 MySQL?
- html - React JS 在带有 reactstrap 的页面中多次使用引导轮播
- r - R中的Paste0返回日期的奇怪值
- angular - 使用秋田数据存储,如何选择所有基于 OR 的 2 个属性匹配的项目?
- javascript - 将 NodeList 变成唯一数组不起作用
- python - 无法向浏览器烧瓶返回响应
- javascript - 在输入文件类型标签中直接打开原生图片文件上传对话框
- hibernate - 尝试使用 Spring Data jpa 使用 DTO 模式从两个数据库表中获取/读取数据时,如何解决错误“无法反序列化”?
- javascript - 如何在 React js 中设置全局字体系列?
- python - Django 选择过滤器:如何阻止在 request.GET 中提交空选择标签