2011-04-22 55 views
1

我有一个JSON文档看起来像这样:我如何知道JArray条目是类型字符串还是类型float(或其他)?

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

情形之一的数组项的可能是(预定)stringfloat值。我曾假设使用(float?)时间表会在string的情况下返回null,但显然我错了。那么做这件事的正确方法是什么?

只是要清楚,这个失败,出现错误消息:

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

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

更多信息:不能 将字符串转换为单个。

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

+0

您可以尝试使用'Single.Parse()'或'Single.TryParse()' – 2011-04-22 18:01:12

回答

1

好了,有了思想的一对夫妇只多钟,我想出了这个明显的解决方案:

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