1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Handle quotes in JSON inside CSV files in CSV node...

so they come out as real JSON rather than being stripped.
This commit is contained in:
dceejay 2015-01-09 20:32:05 +00:00
parent 8822335700
commit 2066d53d3f
2 changed files with 3 additions and 1 deletions

View File

@ -28,6 +28,7 @@
<option value=" ">space</option> <option value=" ">space</option>
<option value=";">semicolon</option> <option value=";">semicolon</option>
<option value=":">colon</option> <option value=":">colon</option>
<option value="#">hashtag</option>
<option value="">other...</option> <option value="">other...</option>
</select> </select>
<input style="width: 40px;" type="text" id="node-input-sep" pattern="."> <input style="width: 40px;" type="text" id="node-input-sep" pattern=".">
@ -100,7 +101,7 @@
return this.name?"node_label_italic":""; return this.name?"node_label_italic":"";
}, },
oneditprepare: function() { oneditprepare: function() {
if (this.sep == "," || this.sep == "\\t" || this.sep == ";" || this.sep == ":" || this.sep == " ") { if (this.sep == "," || this.sep == "\\t" || this.sep == ";" || this.sep == ":" || this.sep == " " || this.sep == "#") {
$("#node-input-select-sep").val(this.sep); $("#node-input-select-sep").val(this.sep);
$("#node-input-sep").hide(); $("#node-input-sep").hide();
} else { } else {

View File

@ -102,6 +102,7 @@ module.exports = function(RED) {
if (msg.payload[i] === node.quo) { // if it's a quote toggle inside or outside if (msg.payload[i] === node.quo) { // if it's a quote toggle inside or outside
f = !f; f = !f;
if (msg.payload[i-1] === node.quo) { k[j] += '\"'; } // if it's a quotequote then it's actually a quote if (msg.payload[i-1] === node.quo) { k[j] += '\"'; } // if it's a quotequote then it's actually a quote
if ((msg.payload[i-1] !== node.sep) && (msg.payload[i+1] !== node.sep)) { k[j] += msg.payload[i]; }
} }
else if ((msg.payload[i] === node.sep) && f) { // if we are outside of quote (ie valid separator else if ((msg.payload[i] === node.sep) && f) { // if we are outside of quote (ie valid separator
if (!node.goodtmpl) { node.template[j] = "col"+(j+1); } if (!node.goodtmpl) { node.template[j] = "col"+(j+1); }