我想查询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
因为它不是JObject
的属性。
答案 0 :(得分:2)
我不确定您的意思是什么,但是您可以继续使用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);