从JSON文件C#读取

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。JsonConvert班是你的朋友。