2016-05-27 11 views
5

Ho un jobject come questo:Come ottenere il valore per chiave da JObject?

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

voglio ottenere @STARTDATE e il valore @ENDDATE da jobject.


Questo è un esempio di codice che ho cercato di fare il compito:

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; 
} 

Nota: Il codice di cui sopra non può ottenere il valore chiave da jobject.


Potrebbe aiutarmi a trovare un modo per ottenere il valore chiave jobject?

+2

si consiglia per consultare questa pagina dei documenti: http://www.newtonsoft.com/json/help/html/linqtojson.htm – mymo

+0

Grazie. Devo imparare di più su questo. –

risposta

5

Questo dovrebbe aiutare -

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

Sei corretto! Grazie mille per il tuo aiuto. –

1

è anche possibile ottenere il valore di un elemento nella jobject come questo:

JToken value; 
if (json.TryGetValue(key, out value)) 
{ 
    DoSomething(value); 
} 
0

Prova questo:

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