Вывод инструмента правильный, но вам нужно прочитать RFC 4180 , стандарт для файлов CSV, чтобы понять, почему.
В основном, JSON spec говорит, что test
должен иметь двойные кавычки, то есть "test"
.
Двойные кавычки по всему полю допускаются в CSV.Но в спецификации CSV также сказано, что в CSV с полями в кавычках внутренняя кавычка дублируется.Это правило 7 раздела 2 RFC 4180:
Если для заключения полей используются двойные кавычки, то двойная кавычка, появляющаяся внутри поля, должна быть экранирована, предшествуя другой двойной кавычке.Например:
"aaa", "b" "bb", "ccc"
Так, каково решение?
Возможновам нужен читатель CSV, совместимый с RFC 4180, так что вы не пишете код синтаксического анализа самостоятельно, где используется файл.
Вы можете заменить двойные двойные кавычки одинарными двойными кавычками, а кавычки в скобкахничего подобного:
sed -e 's/"{/{/g; s/}"/}/g; s/""/"/g;' in.csv > out.csv
преобразование
"{""test"": 1}"
в
{ "test": 1}
или с использованием String.replace
в JavaScript, но полученный CSV-файл НЕ соответствует RFC 4180.