我如何知道JArray条目是字符串类型还是类型float(或其他)?

时间:2011-04-22 17:57:12

标签: c# json.net

我有一个看起来像这样的json文档:

{
 "default": ["auto", 1.0]
}

其中任何一个数组条目可以是(预定义的)stringfloat值。我曾假设使用(float?)强制转换会在null的情况下返回string,但显然我错了。那么这样做的正确方法是什么?

为了清楚起见,这失败并显示错误消息:

float? x = (float?)property.Value[0];
  

未处理的类型异常   发生'System.ArgumentException'   Newtonsoft.Json.dll

     

其他信息:不能   将String转换为Single。

当然,我总是能抓住这个例外,但我认为这不是预期的解决方案。

1 个答案:

答案 0 :(得分:1)

嗯,只有几分钟的思考,我想出了这个明显的解决方案:

if (property.Value[0].Type == JTokenType.Float)
{
    x = (float)property.Value[0];