Reputation: 115
I want to query JObject
and again with result again query in recursive way.
So JObject.SelectToken
is results the Property. so again Querying the Property is not getting value as it's not a JObject
.
So please anyone suggest me a way to acheive this.
Sample Code:
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"": """"
}
}
}");
So, not directly in step wise i've get middle_name value in patient_name
JToken pat_demog = Jobj.SelectToken("$.patient_demog_information");
JToken pat_name = pat_demog.SelectToken("$.patient_name");
So here I'm getting pat_demog
, and by querying it not getting the pat_name
because it's a Property not JObject
.
Upvotes: 1
Views: 6399
Reputation: 14436
I'm not sure fully what you mean but you can keep using SelectToken
to keep drilling futher down the tree, for example:
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);
The above casts to a JValue
however we could just cast directly to a string
string value = (string)pat_name.SelectToken("$.family_name");
Console.WriteLine(value);
Upvotes: 2