2016-06-18 9 views
1

Ich habe diese JTokenWert kann nicht von JTOken bekommen

var pv = JToken.Parse(keys["parameterValues"].ToString()).ToList()[0]; 

die diesen Wert zurückgibt

{"DE:Actual Savings": 42217.0} 

ich nicht .Wert verwenden, da der Schwimmer als Objekt dargestellt wird {42217.0}

Wie kann ich diese Nummer bekommen? Im Moment bin ich mit .ToString() und es

+0

'float val = float.Parse (YourObj.Value)'; – Mairaj

+0

kann ich nicht verwenden. Wert habe ich versucht. Wert (), aber das funktioniert nicht. –

Antwort

1

Umwandlung Um den Wert auf einen definierten Typ konvertieren Sie eine der definierten Methoden unten verwenden:

System.Convert.ChangeType(jtoken.ToString(), targetType); 

oder

JsonConvert.DeserializeObject(jtoken.ToString(), targetType); 

Lassen Sie uns berücksichtigen unser Beispiel:

string json = @{"DE:Actual Savings": 42217.0} 

Sie etwas tun könnte, wie:

var obj = (JObject)JsonConvert.DeserializeObject(json); 
Type type = typeof(float); 
var i1 = System.Convert.ChangeType(obj["DE:Actual Savings"].ToString(), type); 

Hoffe das löst Ihr Problem.

+0

Ich habe mich noch nie mit JSON in .net beschäftigt, aber der Wert, den ich bekomme, ist schrecklich formatiert. Danke für diese Antwort, es funktioniert! Genau das habe ich ohne den 'ChangeType()' gemacht. Was ist der Unterschied bei der Verwendung von Tryparse auf dem Zahnriemen? –

+0

@AKADER Sie sind willkommen. :) – eg16