C# Can';无法从JTOken获得价值

C# Can';无法从JTOken获得价值,c#,json,C#,Json,我有这个电话 var pv = JToken.Parse(keys["parameterValues"].ToString()).ToList()[0]; 返回这个值 {"DE:Actual Savings": 42217.0} 无法使用.Value,因为浮点表示为对象{42217.0} 我怎样才能得到这个号码?现在我正在使用.ToString()并将其转换为要将值转换为定义的类型,可以使用以下定义的方法之一: System.Convert.ChangeType(jtoken.ToStrin

我有这个电话

var pv = JToken.Parse(keys["parameterValues"].ToString()).ToList()[0];
返回这个值

{"DE:Actual Savings": 42217.0}
无法使用.Value,因为浮点表示为对象
{42217.0}


我怎样才能得到这个号码?现在我正在使用.ToString()并将其转换为

要将值转换为定义的类型,可以使用以下定义的方法之一:

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

让我们考虑一下我们的样本:

string json = @{"DE:Actual Savings": 42217.0}
你可以这样做:

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

希望这能解决您的问题。

float val=float.Parse(YourObj.Value);我无法使用我尝试过的.Value.Value(),但这不起作用。我从未在.net中处理过JSON,但我得到的值的格式非常糟糕。谢谢你的回答,很有效!这正是我在没有
ChangeType()
的情况下所做的,在tostring上使用TryParse有什么区别?
var obj = (JObject)JsonConvert.DeserializeObject(json);
Type type = typeof(float);
var i1 = System.Convert.ChangeType(obj["DE:Actual Savings"].ToString(), type);