55 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
  Copyright JS Foundation and other contributors, http://js.foundation
 | 
						|
 | 
						|
  Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
  you may not use this file except in compliance with the License.
 | 
						|
  You may obtain a copy of the License at
 | 
						|
 | 
						|
  http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
  Unless required by applicable law or agreed to in writing, software
 | 
						|
  distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
  See the License for the specific language governing permissions and
 | 
						|
  limitations under the License.
 | 
						|
-->
 | 
						|
 | 
						|
<script type="text/html" data-help-name="csv">
 | 
						|
    <p>Converts between a CSV formatted string and its JavaScript object representation, in either direction.</p>
 | 
						|
    <h3>Inputs</h3>
 | 
						|
    <dl class="message-properties">
 | 
						|
        <dt>payload<span class="property-type">object | array | string</span></dt>
 | 
						|
        <dd>A JavaScript object, array or CSV string.</dd>
 | 
						|
    </dl>
 | 
						|
    <h3>Outputs</h3>
 | 
						|
    <dl class="message-properties">
 | 
						|
        <dt>payload<span class="property-type">object | array | string</span></dt>
 | 
						|
        <dd>
 | 
						|
        <ul>
 | 
						|
            <li>If the input is a string it tries to parse it as CSV and creates a JavaScript object of key/value pairs for each line.
 | 
						|
                The node will then either send a message for each line, or a single message containing an array of objects.</li>
 | 
						|
            <li>If the input is a JavaScript object it tries to build a CSV string.</li>
 | 
						|
            <li>If the input is an array of simple values, it builds a single line CSV string.</li>
 | 
						|
            <li>If the input is an array of arrays, or an array of objects, a multiple-line CSV string is created.</li>
 | 
						|
        </ul>
 | 
						|
        </dd>
 | 
						|
    </dl>
 | 
						|
    <h3>Details</h3>
 | 
						|
    <p>The column template can contain an ordered list of column names. When converting CSV to an object, the column names
 | 
						|
    will be used as the property names. Alternatively, the column names can be taken from the first row of the CSV.
 | 
						|
        <p>When the RFC parser is selected, the column template must be compliant with RFC4180.</p>
 | 
						|
    </p>
 | 
						|
    <p>When converting to CSV, the columns template is used to identify which properties to extract from the object and in what order.</p>
 | 
						|
    <p>If the columns template is blank then you can use a simple comma separated list of properties supplied in <code>msg.columns</code> to
 | 
						|
    determine what to extract and in what order. If neither are present then all the object properties are output in the order
 | 
						|
    in which the properties are found in the first row.</p>
 | 
						|
    <p>If the input is an array then the columns template is only used to optionally generate a row of column titles.</p>
 | 
						|
    <p>If 'parse numerical values' option is checked, string numerical values will be returned as numbers, ie. middle value '1,"1.5",2'.</p>
 | 
						|
    <p>If 'include empty strings' option is checked, empty strings will be returned in result, ie. middle value '"1","",3'.</p>
 | 
						|
    <p>If 'include null values' option is checked, null values will be returned in result, ie. middle value '"1",,3'.</p>
 | 
						|
    <p>The node can accept a multi-part input as long as the <code>parts</code> property is set correctly, for example from a file-in node or split node.</p>
 | 
						|
    <p>If outputting multiple messages they will have their <code>parts</code> property set and form a complete message sequence.</p>
 | 
						|
    <p>If the node is set to only send column headers once, then setting <code>msg.reset</code> to any value will cause the node to resend the headers.</p>
 | 
						|
    <p><b>Note:</b> the column template must be comma separated - even if a different separator is chosen for the data.</p>
 | 
						|
    <p><b>Note:</b> in RFC mode, catchable errors will be thrown for malformed CSV headers and invalid input payload data</p>
 | 
						|
</script>
 |