InvalidOperationException:无法访问Newtonsoft.Json.Linq.JProperty上的子值

时间:2019-05-31 23:33:52

标签: c# json json.net

我正在尝试获取JToken的子代。我会按名称向下钻取,但这是一种随机数,我想知道是否有办法选择孩子?

我当前的代码是:

 var jobs = new Collection<Job>();

 JObject jObject = JObject.Parse(json);
 JToken jCharacter = jObject["Character"];

 var jClassJobs = jCharacter["ClassJobs"].Children();

 foreach (JToken jClassJob in jClassJobs)
 {                
     Int16 cId = (Int16)jClassJob.Value<short>("ClassID");
     Int16 cLevel = (Int16)jClassJob.Value<Int16>("Level");

     jobs.Add(new Job
     {
         Id = cId,
         Level = cLevel
     });
 }

 return jobs;

我试图从中获取ID和Level的json看起来像这样,但本示例中的10_10在另一个示例中为10_20,之后甚至是10_30。它有一个模式,但是要整齐地做:

{"10_10": {
  "ClassID": 10,
  "ExpLevel": 26675,
  "ExpLevelMax": 324000,
  "ExpLevelTogo": 297325,
  "IsSpecialised": false,
  "JobID": 10,
  "Level": 40
}}

任何建议都会受到赞赏,我已经尝试了几个小时。

0 个答案:

没有答案