簡體   English   中英

JObject.SelectToken作為JObject Newtonsoft.JSON C#

[英]JObject.SelectToken as JObject Newtonsoft.JSON C#

我想查詢JObject並再次以遞歸方式查詢結果。

因此, JObject.SelectToken是結果屬性。 因此,再次查詢屬性不會獲得價值,因為它不是JObject

因此,請任何人向我提出一種實現此目標的方法。

樣例代碼:

JObject Jobj = JObject.parse(@"{
  ""patient_demog_information"": {
    ""patient_id"": ""2558765"",
    ""patient_name"": {
      ""given_name"": ""29 th june 2018"",
      ""family_name"": ""0016"",
      ""middle_name"": """",
      ""suffix_name"": """",
      ""prefix_name"": """",
      ""degree_name"": """"
    }
  }
}");

因此,不是直接按步驟操作,而是在Patient_name中獲得了middle_name值

JToken pat_demog = Jobj.SelectToken("$.patient_demog_information");

JToken pat_name = pat_demog.SelectToken("$.patient_name");

所以在這里,我得到pat_demog ,並通過查詢它沒有得到pat_name因為它是一個Property而不是JObject

我不確定您的意思是什么,但是您可以繼續使用SelectToken在樹上繼續鑽取,例如:

JObject Jobj = JObject.Parse(@"{
  ""patient_demog_information"": {
    ""patient_id"": ""2558765"",
    ""patient_name"": {
      ""given_name"": ""29 th june 2018"",
      ""family_name"": ""0016"",
      ""middle_name"": """",
      ""suffix_name"": """",
      ""prefix_name"": """",
      ""degree_name"": """"
    }
  }
}");

JToken pat_demog = Jobj.SelectToken("$.patient_demog_information");

JToken pat_name = pat_demog.SelectToken("$.patient_name");

JValue family_name = (JValue)pat_name.SelectToken("$.family_name");

Console.WriteLine(family_name.Value);

上面的轉換為JValue但是我們可以直接轉換為字符串

string value = (string)pat_name.SelectToken("$.family_name");

Console.WriteLine(value);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM