Trind 07 Trind 07 - 6 months ago 34
JSON Question

How to get value by 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 @STARTDATE and @ENDDATE value from JObject.




This is a sample code that I've tried to do the task:

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 value by key from JObject.




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

Answer

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"];