2016-05-27 8 views
5

mam JObject tak:Jak uzyskać wartość przez klucz z JObject?

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

Chcę dostać @STARTDATE i wartość @ENDDATE z JObject.


To jest przykładowy kod, który starałem się wykonać zadanie:

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

Uwaga: Powyższy kod nie może uzyskać wartość według klucza z JObject.


mógłbyś mi pomóc znaleźć sposób, aby uzyskać wartość przez klucz z JObject?

+2

Można aby przejrzeć tę stronę dokumentów: http://www.newtonsoft.com/json/help/html/linqtojson.htm – mymo

+0

Dzięki. Muszę się dowiedzieć więcej na ten temat. –

Odpowiedz

5

To powinno pomóc -

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

Masz rację! Dziękuję za pomoc. –

1

Można również uzyskać wartość elementu w jObject tak:

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

Spróbuj tego:

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