Reading from JSON File C#
本问题已经有最佳答案,请猛点这里访问。
嘿,伙计们,我有这个JSON文件(摘录):网址:https://hastebin.com/uzifiteqol.json我创建了一个对命令作出响应的discord bot,其中一个命令是*card(卡名)这个JSON文件提供了所有卡的统计信息,但是我希望用户基于IDName(他输入的卡名)访问LVL9统计信息。例如:*卡片箭头这应该会给用户带来JSON中所示的9级箭头的区域伤害,但我不知道如何访问这个属性。下面是我目前为止的情况:
1 | string jsonString = File.ReadAllText("/Users/me/Desktop/cardstatsfile.json"); |
这是JSON文件位置在我的计算机(Mac)上的位置。我不知道该怎么做,我想我需要jtoken.parse并通过文件解析来查找"idname"或用户指定的卡。事先谢谢!
编辑:说明:因为有75张牌,我想通过提供ID名来获取elixircost、rarity等的值以及所有的9级属性。或者我需要重新格式化JSON来执行此操作?
反序列化到POCO,如下所示,然后执行操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | public class Stat { public int level { get; set; } public int areaDamage { get; set; } public int crownTowerDamage { get; set; } public int? hitpoints { get; set; } public int? dps { get; set; } } public class RootObject { public string _id { get; set; } public string idName { get; set; } public string rarity { get; set; } public string type { get; set; } public string name { get; set; } public string description { get; set; } public int arena { get; set; } public int elixirCost { get; set; } public int order { get; set; } public int __v { get; set; } public int radius { get; set; } public string target { get; set; } public List<Stat> stats { get; set; } public string statsDate { get; set; } public int? hitSpeed { get; set; } public int? speed { get; set; } public int? deployTime { get; set; } public double? range { get; set; } public int? count { get; set; } public string transport { get; set; } } |
在对象形式的反序列化之后,编写一些POCO类来存储该数据。对反序列化任务使用newtonsoft。