#c# #json.net
#c# #json.net
Вопрос:
У меня есть документ json, который выглядит следующим образом:
{
"default": ["auto", 1.0]
}
где любая из записей массива может быть (предопределенной) string
или float
значением. Я предполагал, что использование (float?)
приведения вернет null
в тех случаях, когда это было string
, но, видимо, я ошибаюсь. Итак, каков правильный способ сделать это?
Просто для ясности, это завершается ошибкой с сообщением об ошибке:
float? x = (float?)property.Value[0];
Необработанное исключение типа
‘Система.Исключение ArgumentException’ произошло в
Newtonsoft.Json.dllДополнительная информация: Не удается преобразовать строку в Single.
Конечно, я всегда мог бы просто перехватить это исключение, но я не думаю, что это предполагаемое решение.
Комментарии:
1. Вы можете попробовать использовать
Single.Parse()
илиSingle.TryParse()
Ответ №1:
Что ж, подумав еще пару минут, я пришел к этому очевидному решению:
if (property.Value[0].Type == JTokenType.Float)
{
x = (float)property.Value[0];