Есть два способа прочитать ваш вопрос.
Теоретически возможно ли проанализировать строки CSV в JsonNodes с правильными типами значений ....?
Ответ - Да.Например:
- Вы можете написать свой собственный анализатор CSV с нуля, который испускает
JsonNode
объектов. - Вы можете взять
List<Map<String,String>>
из вашего существующего анализатора CSV, применить некоторые эвристики 1 для преобразования в соответствующую структуру JsonNode
(что бы это ни было).
Возможно ли проанализировать строки CSV в JsonNodes с правильными типами значений... используя существующий синтаксический анализатор?
Ответ почти наверняка нет. A (уважающий себя) анализатор CSV не будет генерировать структуры данных JSON, и (уважающий себя) анализатор JSON победилНе принимаю ввод в формате CSV.
Но, читая между строк, я подозреваю, что вы используете JsonNode
только потому, что это удобный способ представления свободно вводимой информации.Но строки работают так же хорошо (как чистое представление), и вы можете реализовать преобразование в (более) типизированные представления, используя простую пользовательскую утилиту или класс-оболочку.
1 - в этом заключаетсяпроблема.CSV по существу не содержит типов, поэтому вам нужно использовать эвристику, чтобы сообщить вам, является ли значение логическим, целым, числом с плавающей запятой или строкой.Но преобразование неоднозначно, и строки в файле CSV могут быть противоречивыми.Таким образом, ваше преобразование в JsonNode
объекты может оказаться ненадежным, если у вас нет «схемы» для файла CSV.