<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic If the CSV is only one line, JSON data with a different layout will be created. in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/If-the-CSV-is-only-one-line-JSON-data-with-a-different-layout/m-p/2237955#M26213</link>
    <description>&lt;P&gt;Hi.&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;I have a CSV file that looks like this:&lt;/P&gt; 
&lt;PRE&gt;id,name,age
1,john,27
2,paul,30&lt;/PRE&gt; 
&lt;P&gt;I want to create JSON array like this:&lt;/P&gt; 
&lt;PRE&gt;[
    {"id":1,"name":"john","age":27},
    {"id":2,"name":"paul","age":30}
]&lt;/PRE&gt; 
&lt;P&gt;There is no problem if there are more than 2 rows in the CSV file.&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;But, if there is 1 line, it will be output like this.&lt;/P&gt; 
&lt;P&gt;Input:&lt;/P&gt; 
&lt;PRE&gt;id,name,age
1,john,27&lt;/PRE&gt; 
&lt;P&gt;Output:&lt;/P&gt; 
&lt;PRE&gt;{
    "dummyloop":{"id":1,"name":"john","age":27}
}&lt;/PRE&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;Why does the layout change?&lt;BR /&gt;I want the following results:&lt;/P&gt; 
&lt;PRE&gt;[{"id":1,"name":"john","age":27}]&lt;/PRE&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;I present a job with the minimum configuration that can reproduce this phenomenon.&lt;/P&gt; 
&lt;P&gt;(In fact, the job continues after this.)&lt;/P&gt; 
&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Job Overview" style="width: 655px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M835.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143413iEC3C7A8F63C5B87D/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M835.png" alt="0683p000009M835.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Job Overview&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tFileInputDelimited" style="width: 999px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M83A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/149721i6DA737859E9AAABA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M83A.png" alt="0683p000009M83A.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;tFileInputDelimited&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tMap" style="width: 999px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M7oA.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/156540i6D5CEAAB7BD56191/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M7oA.png" alt="0683p000009M7oA.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;tMap&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tFileInputJSONField - Component" style="width: 999px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M83F.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/133763iE57226BCA9DC3CF2/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M83F.png" alt="0683p000009M83F.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;tFileInputJSONField - Component&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tFileInputJSONField - Schema" style="width: 988px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M83K.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/144529i7230A7D235B540B0/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M83K.png" alt="0683p000009M83K.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;tFileInputJSONField - Schema&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tFileInputJSONField - JSON tree" style="width: 786px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M83P.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/128616i453B9CF588998081/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M83P.png" alt="0683p000009M83P.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;tFileInputJSONField - JSON tree&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;Q:Why use a dummy loop?&lt;/P&gt; 
&lt;P&gt;A:The job continues after this.&lt;BR /&gt;This is the final layout:&lt;/P&gt; 
&lt;PRE&gt;{
  "app" : 9,
  "records" : [
    {"id":1,"name":"john","age":27},
    {"id":2,"name":"paul","age":30}
  ]
}&lt;/PRE&gt; 
&lt;P&gt;Thank you.&lt;/P&gt;</description>
    <pubDate>Sat, 16 Nov 2024 04:10:37 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2024-11-16T04:10:37Z</dc:date>
    <item>
      <title>If the CSV is only one line, JSON data with a different layout will be created.</title>
      <link>https://community.qlik.com/t5/Talend-Studio/If-the-CSV-is-only-one-line-JSON-data-with-a-different-layout/m-p/2237955#M26213</link>
      <description>&lt;P&gt;Hi.&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;I have a CSV file that looks like this:&lt;/P&gt; 
&lt;PRE&gt;id,name,age
1,john,27
2,paul,30&lt;/PRE&gt; 
&lt;P&gt;I want to create JSON array like this:&lt;/P&gt; 
&lt;PRE&gt;[
    {"id":1,"name":"john","age":27},
    {"id":2,"name":"paul","age":30}
]&lt;/PRE&gt; 
&lt;P&gt;There is no problem if there are more than 2 rows in the CSV file.&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;But, if there is 1 line, it will be output like this.&lt;/P&gt; 
&lt;P&gt;Input:&lt;/P&gt; 
&lt;PRE&gt;id,name,age
1,john,27&lt;/PRE&gt; 
&lt;P&gt;Output:&lt;/P&gt; 
&lt;PRE&gt;{
    "dummyloop":{"id":1,"name":"john","age":27}
}&lt;/PRE&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;Why does the layout change?&lt;BR /&gt;I want the following results:&lt;/P&gt; 
&lt;PRE&gt;[{"id":1,"name":"john","age":27}]&lt;/PRE&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;I present a job with the minimum configuration that can reproduce this phenomenon.&lt;/P&gt; 
&lt;P&gt;(In fact, the job continues after this.)&lt;/P&gt; 
&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Job Overview" style="width: 655px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M835.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/143413iEC3C7A8F63C5B87D/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M835.png" alt="0683p000009M835.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;Job Overview&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tFileInputDelimited" style="width: 999px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M83A.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/149721i6DA737859E9AAABA/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M83A.png" alt="0683p000009M83A.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;tFileInputDelimited&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tMap" style="width: 999px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M7oA.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/156540i6D5CEAAB7BD56191/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M7oA.png" alt="0683p000009M7oA.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;tMap&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tFileInputJSONField - Component" style="width: 999px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M83F.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/133763iE57226BCA9DC3CF2/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M83F.png" alt="0683p000009M83F.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;tFileInputJSONField - Component&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tFileInputJSONField - Schema" style="width: 988px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M83K.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/144529i7230A7D235B540B0/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M83K.png" alt="0683p000009M83K.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;tFileInputJSONField - Schema&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tFileInputJSONField - JSON tree" style="width: 786px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M83P.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/128616i453B9CF588998081/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M83P.png" alt="0683p000009M83P.png" /&gt;&lt;/span&gt;&lt;SPAN class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;tFileInputJSONField - JSON tree&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;Q:Why use a dummy loop?&lt;/P&gt; 
&lt;P&gt;A:The job continues after this.&lt;BR /&gt;This is the final layout:&lt;/P&gt; 
&lt;PRE&gt;{
  "app" : 9,
  "records" : [
    {"id":1,"name":"john","age":27},
    {"id":2,"name":"paul","age":30}
  ]
}&lt;/PRE&gt; 
&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Sat, 16 Nov 2024 04:10:37 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/If-the-CSV-is-only-one-line-JSON-data-with-a-different-layout/m-p/2237955#M26213</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2024-11-16T04:10:37Z</dc:date>
    </item>
    <item>
      <title>Re: If the CSV is only one line, JSON data with a different layout will be created.</title>
      <link>https://community.qlik.com/t5/Talend-Studio/If-the-CSV-is-only-one-line-JSON-data-with-a-different-layout/m-p/2237956#M26214</link>
      <description>&lt;P&gt;Hi yanchi&lt;BR /&gt;If there is only one row, you need to add an attribute @class under dummyloop element, and set its value as "array", see image.&lt;/P&gt; 
&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Snipaste_2019-11-19_15-57-20.png" style="width: 670px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M8b3.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/152222i3ECF44C6CAE6E226/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M8b3.png" alt="0683p000009M8b3.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt; 
&lt;P&gt;It will generate a string like:&lt;/P&gt; 
&lt;P&gt;{"dummyloop":[{"id":"1","name":"john","age":"27"}]}&lt;/P&gt; 
&lt;P&gt;After that, you can remove other characters with this expression on a tJavaRow:&lt;/P&gt; 
&lt;P&gt;output_row.newColumn = input_row.newColumn.substring(input_row.newColumn.indexOf("["), input_row.newColumn.lastIndexOf("]")+1);&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;The result will be:&lt;/P&gt; 
&lt;P&gt;[{"id":"1","name":"john","age":"27"}]&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;Regards&lt;/P&gt; 
&lt;P&gt;Shong&lt;/P&gt;</description>
      <pubDate>Tue, 19 Nov 2019 08:07:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/If-the-CSV-is-only-one-line-JSON-data-with-a-different-layout/m-p/2237956#M26214</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-11-19T08:07:28Z</dc:date>
    </item>
  </channel>
</rss>

