How to get the value by the key from JObject?

I have a JObject like this:

{ "@STARTDATE": "'2016-02-17 00:00:00.000'", "@ENDDATE": "'2016-02-18 23:59:00.000'" } 

I want to get the value of @STARTDATE and @ENDDATE from JObject.


This is an example of the code that I tried to execute:

 JObject json = JObject.Parse("{\"@STARTDATE\": \"'2016-02-17 00:00:00.000'\",\"@ENDDATE\": \"'2016-02-18 23:59:00.000'\"}"); var key = "@STARTDATE"; var value = GetJArrayValue(json, key); private string GetJArrayValue(JObject yourJArray, JToken key) { string value = ""; foreach (JToken item in yourJArray.Children()) { var itemProperties = item.Children<JProperty>(); //If the property name is equal to key, we get the value var myElement = itemProperties.FirstOrDefault(x => x.Name == key.ToString()); value = myElement.Value.ToString(); //It run into an exception here because myElement is null break; } return value; } 

Note. The code above cannot get the key value from JObject.


Could you please help me find a way to get the value by key from JObject?

+5
source share
3 answers

This should help -

 var json = "{'@STARTDATE': '2016-02-17 00:00:00.000', '@ENDDATE': '2016-02-18 23:59:00.000' }"; var fdate = JObject.Parse(json)["@STARTDATE"]; 
+6
source

You can also get the value of an element in jObject as follows:

 JToken value; if (json.TryGetValue(key, out value)) { DoSomething(value); } 
+1
source

Try the following:

 private string GetJArrayValue(JObject yourJArray, string key) { foreach (KeyValuePair<string, JToken> keyValuePair in yourJArray) { if (key == keyValuePair.Key) { return keyValuePair.Value.ToString(); } } } 
0
source

All Articles