嘿伙计们我有这个json文件(摘录): https://hastebin.com/uzifiteqol.json 我创建了一个discord bot响应命令,其中一个命令是* card(卡名) 此JSON文件提供所有卡的统计信息,但我希望用户根据idname(他放置的卡名称)访问lvl 9统计信息 例如: *卡箭头 这应该给用户json中显示的lvl 9箭头的区域损坏,但我不知道如何访问此统计数据。这是我到目前为止所拥有的:
string jsonString = File.ReadAllText("/Users/me/Desktop/cardstatsfile.json");
这是我的计算机上的json文件位置(mac) 我不知道怎么去那里,我以为我需要JToken.parse并通过文件解析来查找“idname”或用户指定的卡片。提前致谢!
编辑:澄清:因为有75张牌,我想通过提供idname获得elixircost,rarity,ect以及所有lvl 9统计数据的值。或者我是否需要重新格式化JSON才能执行此操作?答案 0 :(得分:4)
如下所示反序列化为POCO,然后执行操作
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; }
}
答案 1 :(得分:1)
编写一些POCO类,以对象形式反序列化后存储该数据。使用Newtonsoft进行反序列化任务。 JsonConvert
课程是你的朋友。