node-csvtojson icon indicating copy to clipboard operation
node-csvtojson copied to clipboard

Getting strange half-done result

Open danielbebbernovacode opened this issue 4 years ago • 1 comments

Hello,

We current trying to parse a csv to json and receive the following result when calling the library, it seems like it is a state rather than a result:

{ "_readableState": { "objectMode": false, "highWaterMark": { "$numberLong": "16384" }, "buffer": { "head": null, "tail": null, "length": { "$numberLong": "0" } }, "length": { "$numberLong": "0" }, "pipes": null, "pipesCount": { "$numberLong": "0" }, "flowing": null, "ended": true, "endEmitted": false, "reading": false, "sync": false, "needReadable": false, "emittedReadable": false, "readableListening": false, "resumeScheduled": false, "paused": true, "emitClose": true, "autoDestroy": false, "destroyed": false, "defaultEncoding": "utf8", "awaitDrain": { "$numberLong": "0" }, "readingMore": false, "decoder": null, "encoding": null }, "readable": true, "_events": { "prefinish": {}, "error": { "listener": {} } }, "_eventsCount": { "$numberInt": "2" }, "_maxListeners": { "$undefined": true }, "_writableState": { "objectMode": false, "highWaterMark": { "$numberLong": "16384" }, "finalCalled": false, "needDrain": false, "ending": true, "ended": true, "finished": true, "destroyed": false, "decodeStrings": true, "defaultEncoding": "utf8", "length": { "$numberDouble": "0" }, "writing": false, "corked": { "$numberLong": "0" }, "sync": false, "bufferProcessing": false, "onwrite": {}, "writecb": null, "writelen": { "$numberLong": "0" }, "bufferedRequest": null, "lastBufferedRequest": null, "pendingcb": { "$numberInt": "0" }, "prefinished": true, "errorEmitted": false, "emitClose": true, "autoDestroy": false, "bufferedRequestCount": { "$numberLong": "0" }, "corkedRequestsFree": { "next": null, "entry": null, "finish": {} } }, "writable": false, "allowHalfOpen": true, "_transformState": { "afterTransform": {}, "needTransform": false, "transforming": false, "writecb": null, "writechunk": null, "writeencoding": "buffer" }, "options": {}, "params": { "delimiter": "\t", "ignoreColumns": { "$undefined": true }, "includeColumns": { "$undefined": true }, "quote": "off", "trim": true, "checkType": false, "ignoreEmpty": false, "noheader": false, "headers": { "$undefined": true }, "flatKeys": false, "maxRowLength": { "$numberLong": "0" }, "checkColumn": false, "escape": """, "colParser": {}, "eol": { "$undefined": true }, "alwaysSplitAtEOL": false, "output": "json", "nullObject": false, "downstreamFormat": "line", "needEmitAll": true }, "runtime": { "needProcessIgnoreColumn": false, "needProcessIncludeColumn": false, "selectedColumns": { "$undefined": true }, "ended": false, "hasError": false, "error": { "$undefined": true }, "delimiter": "\t", "eol": "\r\n", "columnConv": [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ], "headerType": [], "headerTitle": [], "headerFlag": [], "headers": [ // Data I removed ], "started": true, "parsedLineNumber": { "$numberDouble": "102" }, "columnValueSetter": [ {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} ], "csvLineBuffer": {} }, "result": { "converter": null, "finalResult": [], "_needPushDownstream": false }, "processor": { "converter": null, "params": { "delimiter": "\t", "ignoreColumns": { "$undefined": true }, "includeColumns": { "$undefined": true }, "quote": "off", "trim": true, "checkType": false, "ignoreEmpty": false, "noheader": false, "headers": { "$undefined": true }, "flatKeys": false, "maxRowLength": { "$numberLong": "0" }, "checkColumn": false, "escape": """, "colParser": {}, "eol": { "$undefined": true }, "alwaysSplitAtEOL": false, "output": "json", "nullObject": false, "downstreamFormat": "line", "needEmitAll": true }, "runtime": { "needProcessIgnoreColumn": false, "needProcessIncludeColumn": false, "selectedColumns": { "$undefined": true }, "ended": false, "hasError": false, "error": { "$undefined": true }, "delimiter": "\t", "eol": "\r\n", "columnConv": [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ], "headerType": [], "headerTitle": [], "headerFlag": [], "headers": [ // Data I removed ], "started": true, "parsedLineNumber": { "$numberDouble": "102" }, "columnValueSetter": [ {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} ], "csvLineBuffer": {} }, "rowSplit": { "conv": null, "cachedRegExp": {}, "delimiterEmitted": false, "_needEmitDelimiter": false, "quote": "off", "trim": true, "escape": """ }, "eolEmitted": false, "_needEmitEol": false, "headEmitted": false, "_needEmitHead": false } }

The input is data that is seperated by \t, so our function call was:

const res_json = await csv({ delimiter: "\t", quote: "off" }).fromString(res);

We don't know what is happening here so maybe someone could explain why this happens.

Best Regards, Daniel

danielbebbernovacode avatar Apr 29 '21 13:04 danielbebbernovacode

what is res inside fromString(res)? res should be string you're parsing from

csv()
.fromString('a.b,a.c')
.subscribe((jsonObj)=>{
   console.log(jsonObj)
})

jfoclpf avatar Jan 09 '22 23:01 jfoclpf