我有这个JToken
var pv = JToken.Parse(keys["parameterValues"].ToString()).ToList()[0];
返回此值
{"DE:Actual Savings": 42217.0}
我不能使用.Value,因为float表示为对象{42217.0}
我怎样才能得到这个号码?现在我正在使用.ToString()并将其转换为
答案 0 :(得分:1)
要将值转换为已定义的类型,您可以使用以下定义的方法之一:
System.Convert.ChangeType(jtoken.ToString(), targetType);
或
JsonConvert.DeserializeObject(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);
希望这能解决你的问题。