Числовые значения в YamlDotNet.RepresentationModel

Как получить числовые значения из модели представления?

Скажем, после просмотра документа у меня есть YamlScalarNode. У него есть string Value, который я, конечно, могу попытаться преобразовать в число, но я бы ожидал, что YAML определит тип и представит его как int или double и т. Д. (Возможно, через потомков от YamlScalarNode, тип которого я мог определить ).

Есть ли официальный способ сделать это, который мне не хватает?

Обратите внимание, что я не могу использовать Serialization: структура документа не отображается напрямую в класс; это может быть рекурсивное определение произвольной глубины, а конечные значения - либо скалярные числа, либо последовательности чисел (векторов).

Кроме того, может ли YamlDotNet обрабатывать числовые ключи в сопоставлениях? Это означает, что ключи 1 и 01 следует считать дубликатами. Я считаю, что этого требует спецификация YAML, но я не уверен ...


person Zeus    schedule 24.08.2015    source источник


Ответы (1)


схемы YAML определяют способ интерпретации скаляров. В идеале вы должны посмотреть на тег скаляра, чтобы определить его тип. по выбранной схеме. Однако YamlDotNet еще не реализует их. А пока вам придется сделать это самому.

person Antoine Aubry    schedule 25.08.2015
comment
Я с той же проблемой. Я пробовал использовать !! int 0 в качестве значения. Но когда я пытаюсь прочитать его как YamlScalarNode, я все равно получаю значение в виде строки. Я застрял. Я не могу выполнить жестко запрограммированную проверку, поскольку она должна быть динамической. Кто-нибудь может помочь? - person Ven; 09.08.2018