我有一个看起来像这样的json文档:
{
"default": ["auto", 1.0]
}
其中任何一个数组条目可以是(预定义的)string
或float
值。我曾假设使用(float?)
强制转换会在null
的情况下返回string
,但显然我错了。那么这样做的正确方法是什么?
为了清楚起见,这失败并显示错误消息:
float? x = (float?)property.Value[0];
未处理的类型异常 发生'System.ArgumentException' Newtonsoft.Json.dll
其他信息:不能 将String转换为Single。
当然,我总是能抓住这个例外,但我认为这不是预期的解决方案。
答案 0 :(得分:1)
嗯,只有几分钟的思考,我想出了这个明显的解决方案:
if (property.Value[0].Type == JTokenType.Float)
{
x = (float)property.Value[0];