{"payload":{"header_redesign_enabled":false,"results":[{"body":"Cinchoo ETL Welcome to the Cinchoo ETL documentation! Just start with the tutorial to parse/create files in various formats within minutes! A .NET library for reading and writing CSV/FixedLength/Xml/JSON files. Extremely fast, flexible and easy to use. Supports reading and writing of custom POCO class objects.","filename":"Home.md","format":"markdown","hl_body":"Cinchoo ETL Welcome to the Cinchoo ETL documentation! Just start with the tutorial to parse/create files in various formats within minutes! A .NET library for reading and writing CSV/FixedLength/Xml/JSON ...","hl_title":"Home","id":"32500f650f7390a4275b8046c6832c4705cb4f04","path":"Home.md","public":true,"repo":{"repository":{"id":71395487,"name":"ChoETL","owner_id":9448455,"owner_login":"Cinchoo","updated_at":"2024-06-07T15:59:30.440Z","has_issues":true}},"repo_id":71395487,"title":"Home","updated_at":"2017-06-20T17:40:36.000-04:00"},{"body":"Loading JSON file To load Avro file, use ChoAvroReader component to parse it. Sample below shows how to load Avro file (Emp.avro) (Avro is binary format, sample shows the payload in JSON format for illustration purpose) [\n { \"Id\" : 1 , \"Name\" : \" Mark \" },\n { \"Id\" : 2 , \"Name\" : \" Tom \" }\n] Load using POCO object public class Employee { public int Id { get ; set ; } public string Name { get ; set ; } } foreach ( var e in new ChoAvroReader < Employee > ( \" Emp.avro \" ) ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; Load using loop var reader = new ChoAvroReader < Employee > ( \" Emp.avro \" ) ; Employee rec ; while ( ( rec = reader . Read ( ) ) != null ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ;","filename":"QuickAvroLoad.md","format":"markdown","hl_body":"Loading JSON file To load Avro file, use ChoAvroReader component to parse it. Sample below shows how to load Avro file (Emp.avro) (Avro is binary format, sample shows the payload in JSON format for illustration ...","hl_title":"QuickAvroLoad","id":"7f3f8a2c959f7e188de44670dc61341575721480","path":"QuickAvroLoad.md","public":true,"repo":{"repository":{"id":71395487,"name":"ChoETL","owner_id":9448455,"owner_login":"Cinchoo","updated_at":"2024-06-07T15:59:30.440Z","has_issues":true}},"repo_id":71395487,"title":"QuickAvroLoad","updated_at":"2021-02-28T15:47:04.000-05:00"},{"body":"Writing Avro file To generate Avro file, use the ChoAvroWriter component to generate it. Sample below shows how to create Avro file (Emp.avro) (Avro is binary format, sample shows the payload in JSON format for illustration purpose) [\n { \"Id\" : \" 1 \" , \"Name\" : \" Mark \" },\n { \"Id\" : \" 2 \" , \"Name\" : \" Jason \" }\n] Write using POCO object public class Employee { public int Id { get ; set ; } public string Name { get ; set ; } } List < Employee > objs = new List < Employee > ( ) ; objs . Add ( new Employee ( ) { Id = 1 , Name = \" Tom \" } ) ; objs . Add ( new Employee ( ) { Id = 2 , Name = \" Mark \" } ) ; using ( var parser = new ChoAvroWriter < Employee > ( \" Emp.avro \" ) ) { parser . Write ( objs ) ; } Write each object using ( var parser = new ChoAvroWriter ( \" Emp.avro \" ) ) { Employee rec1 = new Employee ( ) ; rec1 . Id = 1 ; rec1 . Name = \" Mark \" ; parser . Write ( item ) ; Employee rec1 = new Employee ( ) ; rec1 . Id = 2 ; rec1 . Name = \" Jason \" ; parser . Write ( item ) ; }","filename":"QuickAvroWrite.md","format":"markdown","hl_body":"Writing Avro file To generate Avro file, use the ChoAvroWriter component to generate it. Sample below shows how to create Avro file (Emp.avro) (Avro is binary format, sample shows the payload in JSON format ...","hl_title":"QuickAvroWrite","id":"4309f2eff372e65c971c81192463358fabf0530a","path":"QuickAvroWrite.md","public":true,"repo":{"repository":{"id":71395487,"name":"ChoETL","owner_id":9448455,"owner_login":"Cinchoo","updated_at":"2024-06-07T15:59:30.440Z","has_issues":true}},"repo_id":71395487,"title":"QuickAvroWrite","updated_at":"2021-02-28T15:51:01.000-05:00"},{"body":"Loading CSV file To load CSV file, use ChoCSVLiteReader component to parse it. Sample below shows how to load CSV file (Emp.csv) Id,Name\n1,Tom\n2,Carl\n3,Mark Load using iterator using ( var r = new ChoCSVLiteReader ( ) ) { //Open the reader, skip the header foreach ( var cols in r . ReadFile ( \" emp.csv \" ) . Skip ( 1 ) ) { Console . WriteLine ( $\" Id: { cols [ 0 ] } \" ) ; Console . WriteLine ( $\" Name: { cols [ 1 ] } \" ) ; } } Load using loop using ( var r = new ChoCSVLiteReader ( ) ) { //Open the reader, skip the header var recNum = r . ReadFile ( \" emp.csv \" ) . Skip ( 1 ) . GetEnumerator ( ) ; while ( recNum . MoveNext ( ) ) { var cols = recNum . Current ; Console . WriteLine ( $\" Id: { cols [ 0 ] } \" ) ; Console . WriteLine ( $\" Name: { cols [ 1 ] } \" ) ; } } Load using POCO object public class Employee { public int Id { get ; set ; } public string Name { get ; set ; } } foreach ( var rec in r . ReadFile < EmployeeRec > ( \" emp.csv \" , true , mapper : ( lineno , cols , rec ) = > { rec . Id = cols [ 0 ] . CastTo < int > ( ) ; rec . Name = cols [ 1 ] ; } ) ) { Console . WriteLine ( $\" Id: { rec . Id } \" ) ; Console . WriteLine ( $\" Name: { rec . Name } \" ) ; } Please visit below article for detailed walk-through of CSV reader Cinchoo ETL - CSV Lite Reader","filename":"QuickCSVLiteLoad.md","format":"markdown","hl_body":"Loading CSV file To load CSV file, use ChoCSVLiteReader component to parse it. Sample below shows how to load CSV file (Emp.csv) Id,Name\n1,Tom\n2,Carl\n3,Mark Load using iterator using ( var r = new ChoCSVLiteReader ...","hl_title":"QuickCSVLiteLoad","id":"e0dcfbc98bfe5738780f0382fe6d7b5b15f02095","path":"QuickCSVLiteLoad.md","public":true,"repo":{"repository":{"id":71395487,"name":"ChoETL","owner_id":9448455,"owner_login":"Cinchoo","updated_at":"2024-06-07T15:59:30.440Z","has_issues":true}},"repo_id":71395487,"title":"QuickCSVLiteLoad","updated_at":"2021-12-30T18:58:46.000-05:00"},{"body":"Loading CSV file To load CSV file, use ChoCSVReader component to parse it. Sample below shows how to load CSV file (Emp.csv) Id,Name\n1,Tom\n2,Carl\n3,Mark Load using iterator foreach ( dynamic e in new ChoCSVReader ( \" Emp.csv \" ) . WithFirstLineHeader ( ) ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; Load using loop var reader = new ChoCSVReader ( \" Emp.csv \" ) . WithFirstLineHeader ( ) ; dynamic e ; while ( ( e = reader . Read ( ) ) != null ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; Load using POCO object public class Employee { public int Id { get ; set ; } public string Name { get ; set ; } } foreach ( var e in new ChoCSVReader < Employee > ( \" Emp.csv \" ) . WithFirstLineHeader ( ) ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; Please visit below article for detailed walk-through of CSV reader Cinchoo ETL - CSV Reader","filename":"QuickCSVLoad.md","format":"markdown","hl_body":"Loading CSV file To load CSV file, use ChoCSVReader component to parse it. Sample below shows how to load CSV file (Emp.csv) Id,Name\n1,Tom\n2,Carl\n3,Mark Load using iterator foreach ( dynamic e in new ChoCSVReader ...","hl_title":"QuickCSVLoad","id":"94aa54a45a51abcdab3526e0b0691d158068a723","path":"QuickCSVLoad.md","public":true,"repo":{"repository":{"id":71395487,"name":"ChoETL","owner_id":9448455,"owner_login":"Cinchoo","updated_at":"2024-06-07T15:59:30.440Z","has_issues":true}},"repo_id":71395487,"title":"QuickCSVLoad","updated_at":"2023-04-07T16:21:01.000-04:00"},{"body":"Writing CSV file To generate CSV file, use the ChoCSVWriter component to generate it. Sample below shows how to create CSV file (Emp.csv) 1,Mark\n2,Jason Write list of objects List < ExpandoObject > objs = new List < ExpandoObject > ( ) ; dynamic rec1 = new ExpandoObject ( ) ; rec1 . Id = 1 ; rec1 . Name = \" Mark \" ; objs . Add ( rec1 ) ; dynamic rec2 = new ExpandoObject ( ) ; rec2 . Id = 2 ; rec2 . Name = \" Jason \" ; objs . Add ( rec2 ) ; using ( var parser = new ChoCSVWriter ( \" Emp.csv \" ) ) { parser . Write ( objs ) ; } Write each object using ( var parser = new ChoCSVWriter ( \" Emp.csv \" ) ) { dynamic rec1 = new ExpandoObject ( ) ; rec1 . Id = 1 ; rec1 . Name = \" Mark \" ; parser . Write ( rec1 ) ; dynamic rec2 = new ExpandoObject ( ) ; rec2 . Id = 2 ; rec2 . Name = \" Jason \" ; parser . Write ( rec2 ) ; } Write using POCO object public class Employee { public int Id { get ; set ; } public string Name { get ; set ; } } List < Employee > objs = new List < Employee > ( ) ; objs . Add ( new Employee ( ) { Id = 1 , Name = \" Tom \" } ) ; objs . Add ( new Employee ( ) { Id = 2 , Name = \" Mark \" } ) ; using ( var parser = new ChoCSVWriter < Employee > ( \" Emp.csv \" ) ) { parser . Write ( objs ) ; } Please visit below article for detailed walk-through of CSV writer Cinchoo ETL - CSV Writer","filename":"QuickCSVWrite.md","format":"markdown","hl_body":"Writing CSV file To generate CSV file, use the ChoCSVWriter component to generate it. Sample below shows how to create CSV file (Emp.csv) 1,Mark\n2,Jason Write list of objects List < ExpandoObject > ...","hl_title":"QuickCSVWrite","id":"677e61219b612d088e143cf500fd6342a7ea73b1","path":"QuickCSVWrite.md","public":true,"repo":{"repository":{"id":71395487,"name":"ChoETL","owner_id":9448455,"owner_login":"Cinchoo","updated_at":"2024-06-07T15:59:30.440Z","has_issues":true}},"repo_id":71395487,"title":"QuickCSVWrite","updated_at":"2022-01-09T17:50:53.000-05:00"},{"body":"Loading FixedLength file To load FixedLength file, use ChoFixedLengthReader component to parse it. Sample below shows how to load FixedLength file (Emp.txt) Id Name \n1 Carl \n2 Mark Load using iterator foreach ( dynamic e in new ChoFixedLengthReader ( \" Emp.txt \" ) . WithFirstLineHeader ( ) ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; Load using loop var reader = new ChoFixedLengthReader ( \" Emp.txt \" ) . WithFirstLineHeader ( ) ; dynamic rec ; while ( ( rec = reader . Read ( ) ) != null ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; Load with field specs foreach ( var e in new ChoFixedLengthReader ( \" Emp.txt \" ) . WithFirstLineHeader ( ) . WithField ( \" Id \" , 0 , 8 ) . WithField ( 8 , 10 ) ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; Load using POCO object public partial class Employee { [ ChoFixedLengthRecordField ( 0 , 8 ) ] public int Id { get ; set ; } [ ChoFixedLengthRecordField ( 8 , 10 ) ] public string Name { get ; set ; } } foreach ( var e in new FixedLengthReader < Employee > ( \" Emp.txt \" ) ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; Please visit below article for detailed walk-through of Flat (FixedLength) file reader Cinchoo ETL - FixedLength Reader","filename":"QuickFixedLengthLoad.md","format":"markdown","hl_body":"Loading FixedLength file To load FixedLength file, use ChoFixedLengthReader component to parse it. Sample below shows how to load FixedLength file (Emp.txt) Id Name \n1 Carl \n2 ...","hl_title":"QuickFixedLengthLoad","id":"67d4ecaaf230fe2c31f93e78b4470d24fcd2bdc1","path":"QuickFixedLengthLoad.md","public":true,"repo":{"repository":{"id":71395487,"name":"ChoETL","owner_id":9448455,"owner_login":"Cinchoo","updated_at":"2024-06-07T15:59:30.440Z","has_issues":true}},"repo_id":71395487,"title":"QuickFixedLengthLoad","updated_at":"2017-06-24T15:38:49.000-04:00"},{"body":"Writing FixedLength file To generate FixedLength file, use the ChoFixedLengthWriter component to generate it. Sample below shows how to create FixedLength file (Emp.txt) Id Name \n1 Carl \n2 Jason Write list of objects List < ExpandoObject > objs = new List < ExpandoObject > ( ) ; dynamic rec1 = new ExpandoObject ( ) ; rec1 . Id = 1 ; rec1 . Name = \" Mark \" ; objs . Add ( rec1 ) ; dynamic rec2 = new ExpandoObject ( ) ; rec2 . Id = 2 ; rec2 . Name = \" Jason \" ; objs . Add ( rec2 ) ; using ( var parser = new ChoFixedLengthWriter ( \" Emp.txt \" ) . WithFirstLineHeader ( ) . WithField ( \" Id \" , 0 , 8 ) . WithField ( \" Name \" , 8 , 10 ) ) { parser . Write ( objs ) ; } Write each object using ( var parser = new ChoFixedLengthWriter ( \" Emp.txt \" ) . WithFirstLineHeader ( ) . WithField ( \" Id \" , 0 , 8 ) . WithField ( \" Name \" , 8 , 10 ) ) { dynamic rec1 = new ExpandoObject ( ) ; rec1 . Id = 1 ; rec1 . Name = \" Mark \" ; parser . Write ( item ) ; dynamic rec1 = new ExpandoObject ( ) ; rec1 . Id = 2 ; rec1 . Name = \" Jason \" ; parser . Write ( item ) ; } Please visit below article for detailed walk-through of Flat (FixedLength) file writer Cinchoo ETL - FixedLength Writer","filename":"QuickFixedLengthWrite.md","format":"markdown","hl_body":"Writing FixedLength file To generate FixedLength file, use the ChoFixedLengthWriter component to generate it. Sample below shows how to create FixedLength file (Emp.txt) Id Name \n1 Carl ...","hl_title":"QuickFixedLengthWrite","id":"497007e1530bda2c34d4ab76a7cc1ffb43d67109","path":"QuickFixedLengthWrite.md","public":true,"repo":{"repository":{"id":71395487,"name":"ChoETL","owner_id":9448455,"owner_login":"Cinchoo","updated_at":"2024-06-07T15:59:30.440Z","has_issues":true}},"repo_id":71395487,"title":"QuickFixedLengthWrite","updated_at":"2017-06-15T20:21:27.000-04:00"},{"body":"Loading JSON file To load JSON file, use ChoJSONReader component to parse it. Sample below shows how to load JSON file (Emp.json) [\n {\n \"Id\": 1,\n \"Name\": \"Mark\"\n },\n {\n \"Id\": 2,\n \"Name\": \"Tom\"\n }\n] Load using iterator foreach ( dynamic e in new ChoJSONReader ( \" Emp.json \" ) ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; Load using loop var reader = new ChoJSONReader ( \" Emp.json \" ) ; dynamic rec ; while ( ( rec = reader . Read ( ) ) != null ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; Load using POCO object public class Employee { public int Id { get ; set ; } public string Name { get ; set ; } } foreach ( var e in new ChoJSONReader < Employee > ( \" Emp.json \" ) ) Console . WriteLine ( \" Id: \" + e . Id + \" Name: \" + e . Name ) ; For more information, please visit below article Convert JSON to CSV file","filename":"QuickJSONLoad.md","format":"markdown","hl_body":"Loading JSON file To load JSON file, use ChoJSONReader component to parse it. Sample below shows how to load JSON file (Emp.json) [\n {\n "Id": 1,\n "Name": "Mark"\n ...","hl_title":"QuickJSONLoad","id":"53b4aa6015492fddab084e62ad1c8c4e0577d98c","path":"QuickJSONLoad.md","public":true,"repo":{"repository":{"id":71395487,"name":"ChoETL","owner_id":9448455,"owner_login":"Cinchoo","updated_at":"2024-06-07T15:59:30.440Z","has_issues":true}},"repo_id":71395487,"title":"QuickJSONLoad","updated_at":"2017-06-30T21:18:13.000-04:00"},{"body":"Writing JSON file To generate JSON file, use the ChoJSONWriter component to generate it. Sample below shows how to create JSON file (Emp.json) [\n {\n \"Id\":\"1\",\n \"Name\":\"Mark\"\n },\n {\n \"Id\":\"2\",\n \"Name\":\"Jason\"\n }\n] Write list of objects List < ExpandoObject > objs = new List < ExpandoObject > ( ) ; dynamic rec1 = new ExpandoObject ( ) ; rec1 . Id = 1 ; rec1 . Name = \" Mark \" ; objs . Add ( rec1 ) ; dynamic rec2 = new ExpandoObject ( ) ; rec2 . Id = 2 ; rec2 . Name = \" Jason \" ; objs . Add ( rec2 ) ; using ( var parser = new ChoJSONWriter ( \" Emp.json \" ) ) { parser . Write ( objs ) ; } Write each object using ( var parser = new ChoJSONWriter ( \" Emp.json \" ) ) { dynamic rec1 = new ExpandoObject ( ) ; rec1 . Id = 1 ; rec1 . Name = \" Mark \" ; parser . Write ( item ) ; dynamic rec1 = new ExpandoObject ( ) ; rec1 . Id = 2 ; rec1 . Name = \" Jason \" ; parser . Write ( item ) ; } Write using POCO object public class Employee { public int Id { get ; set ; } public string Name { get ; set ; } } List < Employee > objs = new List < Employee > ( ) ; objs . Add ( new Employee ( ) { Id = 1 , Name = \" Tom \" } ) ; objs . Add ( new Employee ( ) { Id = 2 , Name = \" Mark \" } ) ; using ( var parser = new ChoJSONWriter < Employee > ( \" Emp.json \" ) ) { parser . Write ( objs ) ; }","filename":"QuickJSONWrite.md","format":"markdown","hl_body":"Writing JSON file To generate JSON file, use the ChoJSONWriter component to generate it. Sample below shows how to create JSON file (Emp.json) [\n {\n "Id":"1",\n "Name":"Mark" ...","hl_title":"QuickJSONWrite","id":"b411bd535260bc112e84c20e637e0a0e17072b4a","path":"QuickJSONWrite.md","public":true,"repo":{"repository":{"id":71395487,"name":"ChoETL","owner_id":9448455,"owner_login":"Cinchoo","updated_at":"2024-06-07T15:59:30.440Z","has_issues":true}},"repo_id":71395487,"title":"QuickJSONWrite","updated_at":"2017-07-10T21:09:15.000-04:00"}],"type":"wikis","page":1,"page_count":3,"elapsed_millis":100,"errors":[],"result_count":22,"facets":[],"protected_org_logins":[],"topics":null,"query_id":"","logged_in":false,"sign_up_path":"/signup?source=code_search_results","sign_in_path":"/login?return_to=https%3A%2F%2Fgithub.com%2Fsearch%3Fq%3Drepo%253ACinchoo%252FChoETL%2B%26type%3DWikis","metadata":null},"title":"Wiki search results"}