Вопросительный знак с кириллицей и iTextSharp c #

Я также сталкивался с тем же типом проблемы, когда мне приходится разбирать CSV-файл. Файл содержит адрес столбца, который содержит «,». После разбора этого CSV на JSON я получаю несогласованное отображение ключей при преобразовании его в файл JSON. Я использовал узел для разбора файла и библиотеки как baby parse и csvtojson Пример файла -

address,pincode
foo,baar , 123456

Пока я разбирался напрямую, не используя ребенка parse in JSON Я получал

[{
 address: 'foo',
 pincode: 'baar',
 'field3': '123456'
}]

Итак, я написал код, который удаляет запятую (,) любым другим разделителем с каждым полем

/*
 csvString(input) = "address, pincode\\nfoo, bar, 123456\\n"
 output = "address, pincode\\nfoo {YOUR DELIMITER} bar, 123455\\n"
*/
const removeComma = function(csvString){
    let delimiter = '|'
    let Baby = require('babyparse')
    let arrRow = Baby.parse(csvString).data;
    /*
      arrRow = [ 
      [ 'address', 'pincode' ],
      [ 'foo, bar', '123456']
      ]
    */
    return arrRow.map((singleRow, index) => {
        //the data will include 
        /* 
        singleRow = [ 'address', 'pincode' ]
        */
        return singleRow.map(singleField => {
            //for removing the comma in the feild
            return singleField.split(',').join(delimiter)
        })
    }).reduce((acc, value, key) => {
        acc = acc +(Array.isArray(value) ?
         value.reduce((acc1, val)=> {
            acc1 = acc1+ val + ','
            return acc1
        }, '') : '') + '\n';
        return acc;
    },'')
}

Возвращенная функция может быть передана в библиотеку csvtojson, и, следовательно, результат может быть использован.

const csv = require('csvtojson')

let csvString = "address, pincode\\nfoo, bar, 123456\\n"
let jsonArray = []
modifiedCsvString = removeComma(csvString)
csv()
  .fromString(modifiedCsvString)
  .on('json', json => jsonArray.push(json))
  .on('end', () => {
    /* do any thing with the json Array */
  })

Теперь вы можете получить выход как

[{
  address: 'foo, bar',
  pincode: 123456
}]

0
задан Marco 16 January 2019 в 14:12
поделиться