static void ComplexObjTest() { StringBuilder sb = new StringBuilder(); var obj = new Lad { firstName = "Markoff", lastName = "Chaney", dateOfBirth = new MyDate { year = 1901, month = 4, day = 30 } }; using (var jr = new ChoJSONWriter <Lad>(sb) ) { jr.Write(obj); } Console.WriteLine(sb.ToString()); }
static void Yaml2JsonTypeIssue() { string yaml = @" EntityId: type: integer example: 1245 EntityIds: type: array items: $ref: EntityId example: [152, 6542, 23] isActive: true "; using (var r = ChoYamlReader.LoadText(yaml)) { using (var w = new ChoJSONWriter(Console.Out) .SupportMultipleContent(true) .SingleElement() ) w.Write(r); } }
/// <summary> ///sorting the state for population,density and area /// </summary> /// <param name="path"> State Code data path </param> /// <param name="jsonFilepath"> Delimiter </param> /// <param name="key"> Header </param> /// <returns> sorting the state for population,density and area </returns> public static string SortCSVInJsonAndReturnData(string path, string jsonFilepath, string key) { //create a object to read file string csvfile = File.ReadAllText(path); StringBuilder json = new StringBuilder(); //read a csv file using (var p = ChoCSVReader.LoadText(csvfile) .WithFirstLineHeader() ) { //write json file using (var w = new ChoJSONWriter(json)) w.Write(p); } File.WriteAllText(jsonFilepath, json.ToString()); JArray arr = CSVOperations.SortJsonBasedOnKeyAndValueIsNumber(jsonFilepath, key); //convert into json format var jsonArr = JsonConvert.SerializeObject(arr, Formatting.Indented); File.WriteAllText(jsonFilepath, jsonArr); return(CSVOperations.RetriveLastDataOnKey(jsonFilepath, key)); }
/// <summary> /// Coverts csv string to json string /// </summary> /// <param name="csvContent">string content of csv data</param> /// <param name="delimiter">delimiter used in csv data</param> /// <returns></returns> public static string Convert(string csvContent, string delimiter) { try { string jsonResult; using (var p = new ChoCSVReader(new StringReader(csvContent)).WithFirstLineHeader().WithDelimiter(delimiter)) { using (var stringWriter = new StringWriter()) { using (var w = new ChoJSONWriter(stringWriter)) { w.Write(p); } jsonResult = stringWriter.ToString(); } } return(jsonResult); } catch (Exception e) { Console.WriteLine(e); throw; } }
public IEnumerable <ItemDTO> Post([FromBody] string value) { StringBuilder sb = new StringBuilder(); using (var p = ChoCSVReader.LoadText(value).WithFirstLineHeader()) { using (var w = new ChoJSONWriter(sb)) { w.Write(p); } } var items = _context.Porducts.ToList(); var content = JsonConvert.DeserializeObject <IEnumerable <Item> >(sb.ToString()); List <ItemDTO> newItems = new List <ItemDTO>(); foreach (Item item in content) { if (!items.Any(y => y.Id == item.Id)) { var newItem = new ItemDTO() { Product = item, Updated = false }; newItems.Add(newItem); } else { var existingItem = new ItemDTO() { Product = item, Updated = true }; newItems.Add(existingItem); } } return(newItems); }
static void NestedJSONFile() { var dataMapperModels = new List <DataMapper>(); var model = new DataMapper { Name = "performanceLevels", SubDataMappers = new List <DataMapper>() { new DataMapper() { Name = "performanceLevel_1", SubDataMappers = new List <DataMapper>() { new DataMapper() { Name = "title", DataMapperProperty = new DataMapperProperty() { Source = "column", SourceColumn = "title-column", DataType = "string", Default = "N/A", SourceTable = null, Value = null } }, new DataMapper() { Name = "version1", DataMapperProperty = new DataMapperProperty() { Source = "column", SourceColumn = "version-column", DataType = "int", Default = "1", SourceTable = null, Value = null } }, new DataMapper() { Name = "threeLevels", SubDataMappers = new List <DataMapper>() { new DataMapper() { Name = "version", DataMapperProperty = new DataMapperProperty() { Source = "column", SourceColumn = "version-column", DataType = "int", Default = "1", SourceTable = null, Value = null } } } } } }, new DataMapper() { Name = "performanceLevel_2", SubDataMappers = new List <DataMapper>() { new DataMapper() { Name = "title", DataMapperProperty = new DataMapperProperty() { Source = "column", SourceColumn = "title-column", DataType = "string", Default = "N/A", SourceTable = null, Value = null } }, new DataMapper() { Name = "version", DataMapperProperty = new DataMapperProperty() { Source = "column", SourceColumn = "version-column", DataType = "int", Default = "1", SourceTable = null, Value = null } } } } } }; dataMapperModels.Add(model); using (var w = new ChoJSONWriter("nested.json") ) w.Write(dataMapperModels); }
static void SerializeAndDeserializeDynamicTest() { string path = "AvroSampleReflection.avro"; //SerializeDynamicSampleFile(path); var dict = new Dictionary <string, object>(); dict.Add("1", 3); dict.Add("2", new Location { Room = 243, Floor = 1 }); ChoAvroRecordConfiguration config = null; AvroSerializerSettings sett1 = null; using (var w = new ChoAvroWriter(path) .WithAvroSerializer(AvroSerializer.Create <Dictionary <string, object> >(new AvroSerializerSettings() { Resolver = new ChoAvroPublicMemberContractResolver() })) .Configure(c => c.KnownTypes = new List <Type> { typeof(Location), typeof(string), typeof(int) }) //.Configure(c => c.UseAvroSerializer = true) //.Configure(c => c.AvroSerializerSettings.Resolver = new AvroDataContractResolverEx()) ) { sett1 = w.Configuration.AvroSerializerSettings; config = w.Configuration; w.Write(dict); w.Write(dict); w.Write(dict); } //var sett = new AvroSerializerSettings(); //sett.Resolver = new ChoAvroPublicMemberContractResolver(); // false) { Configuration = config }; //sett.KnownTypes = new List<Type> { typeof(Location), typeof(string), typeof(int) }; //var avroSerializer = AvroSerializer.Create<Dictionary<string, object>>(sett1); //using (var r = new StreamReader(path)) //{ // var rec = avroSerializer.Deserialize(r.BaseStream); // var rec2 = avroSerializer.Deserialize(r.BaseStream); // var rec3 = avroSerializer.Deserialize(r.BaseStream); // Console.WriteLine(rec.Dump()); // Console.WriteLine(rec2.Dump()); // Console.WriteLine(rec3.Dump()); // //var rec4 = avroSerializer.Deserialize(r); //} StringBuilder json = new StringBuilder(); using (var r = new ChoAvroReader(path) .Configure(c => c.KnownTypes = new List <Type> { typeof(Location), typeof(string), typeof(int) }) .Configure(c => c.UseAvroSerializer = true) //.Configure(c => c.AvroSerializerSettings = sett1) .Configure(c => c.NestedColumnSeparator = '_') ) { //var dt = r.AsDataTable(); //Console.WriteLine(dt.Dump()); //return; //foreach (var rec in r) //{ // Console.WriteLine(rec.Dump()); //} //return; using (var w = new ChoJSONWriter(json) .Configure(c => c.TurnOnAutoDiscoverJsonConverters = true) ) { w.Write(r); } } Console.WriteLine(json.ToString()); }
static void POCOTest() { string path = "AvroPOCOSample1.avro"; //SerializePOCOSampleFile(path); //var sett = new AvroSerializerSettings(); //sett.Resolver = new ChoAvroPublicMemberContractResolver(); //sett.KnownTypes = new List<Type> { typeof(Location), typeof(string) }; //var avroSerializer = AvroSerializer.Create<SensorData>(sett); //using (var buffer = new StreamReader(File.OpenRead(path))) //{ // var actual1 = avroSerializer.Deserialize(buffer.BaseStream); // var actual2 = avroSerializer.Deserialize(buffer.BaseStream); // Console.WriteLine(actual1.Dump()); //} //return; var testData = new List <SensorData> { new SensorData { Value = new byte[] { 1, 2, 3, 4, 5 }, Position = new Location { Room = 243, Floor = 1 } }, new SensorData { Value = new byte[] { 6, 7, 8, 9 }, Position = new Location { Room = 244, Floor = 1 } } }; using (var w = new ChoAvroWriter <SensorData>(path) ) { //w.Write(testData); w.Write(new SensorData { Value = new byte[] { 1, 2, 3, 4, 5 }, Position = new Location { Room = 243, Floor = 1 } }); w.Write(new SensorData { Value = new byte[] { 6, 7, 8, 9 }, Position = new Location { Room = 244, Floor = 1 } }); } StringBuilder json = new StringBuilder(); using (var r = new ChoAvroReader <SensorData>(path) //.WithAvroSerializer(AvroSerializer.Create<Dictionary<string, object>>(new AvroSerializerSettings())) ) { foreach (var rec in r) { Console.WriteLine(rec.Dump()); } return; using (var w = new ChoJSONWriter(json) .Configure(c => c.TurnOnAutoDiscoverJsonConverters = true) ) { w.Write(r); } } Console.WriteLine(json.ToString()); }
public static Dictionary <string, string> ParseData(string dataString) { Dictionary <string, string> returnData = new Dictionary <string, string>(); returnData.Add("startDate", ""); returnData.Add("endDate", ""); returnData.Add("newCasesToday", ""); returnData.Add("newCaseFortnightAverage", ""); returnData.Add("deathFortnightAverage", ""); // Data string is csv, parse to JSON instead StringBuilder stringData = new StringBuilder(); stringData.Append("{\"data\":"); using (var p = ChoCSVReader.LoadText(dataString).WithFirstLineHeader()) { using (var w = new ChoJSONWriter(stringData)) { w.Write(p); } } stringData.Append("}"); JObject dataObject = JObject.Parse(stringData.ToString()); JToken dataToken = dataObject["data"]; JEnumerable <JToken> dataUnits = dataToken.Children(); List <dataPoint> dataPoints = new List <dataPoint>(); int newCaseCount; int deathCount; foreach (JToken token in dataUnits) { // Filter out any data that's not for Vic if (token.SelectToken("state").ToString() != "\\\"Victoria\\\"") { continue; } Int32.TryParse(token.SelectToken("confirmed").ToString(), out newCaseCount); Int32.TryParse(token.SelectToken("deaths").ToString(), out deathCount); dataPoints.Add(new dataPoint { dateTime = DateTime.Parse(token.SelectToken("date").ToString()), newCaseCount = newCaseCount, deathCount = deathCount }); } dataPoint[] dataArray = dataPoints.ToArray(); int index = dataArray.Length - 1; double newCaseFortnightAverage = 0; double deathFortnightAverage = 0; for (int i = 0; i < 13; i++) { newCaseCount = dataArray[index - i].newCaseCount; newCaseFortnightAverage += newCaseCount; deathCount = dataArray[index - i].deathCount; deathFortnightAverage += deathCount; } returnData["newCaseFortnightAverage"] = Math.Round(newCaseFortnightAverage / 14, 1).ToString(); returnData["deathFortnightAverage"] = Math.Round(deathFortnightAverage / 14, 1).ToString(); returnData["endDate"] = dataArray[index].dateTime.ToString("dddd, dd MMMM yyyy"); returnData["startDate"] = dataArray[index - 13].dateTime.ToString("dddd, dd MMMM yyyy"); returnData["newCasesToday"] = dataArray[index].newCaseCount.ToString(); return(returnData); }
static void Issue167() { var completeFile = new CompleteFile { DataSource = "DataSource", DataType = 1, Samples = new Samples { Samples1 = new List <Data> { new Data { Prop00 = 0, Prop01 = "Prop01", Properties = new Properties { Prop10 = 1, Prop11 = 2, } }, new Data { Prop00 = 0, Prop01 = "Prop01", Properties = new Properties { Prop10 = 1, Prop11 = 2, } }, new Data { Prop00 = 0, Prop01 = "Prop01", Properties = new Properties { Prop10 = 1, Prop11 = 2, } }, }, Samples2 = new List <Data> { new Data { Prop00 = 0, Prop01 = "Prop01", Properties = new Properties { Prop10 = 1, Prop11 = 2, } }, new Data { Prop00 = 0, Prop01 = "Prop01", Properties = new Properties { Prop10 = 1, Prop11 = 2, } }, new Data { Prop00 = 0, Prop01 = "Prop01", Properties = new Properties { Prop10 = 1, Prop11 = 2, } }, }, Samples3 = new List <Data> { new Data { Prop00 = 0, Prop01 = "Prop01", Properties = new Properties { Prop10 = 1, Prop11 = 2, } }, new Data { Prop00 = 0, Prop01 = "Prop01", Properties = new Properties { Prop10 = 1, Prop11 = 2, } }, new Data { Prop00 = 0, Prop01 = "Prop01", Properties = new Properties { Prop10 = 1, Prop11 = 2, } }, }, Sample4 = new Data { Prop00 = 0, Prop01 = "Prop01", Properties = new Properties { Prop10 = 1, Prop11 = 2, } }, } }; StringBuilder json = new StringBuilder(); using (var w = new ChoJSONWriter <CompleteFile>(json) ) { w.Write(completeFile); } json.Print(); using (var r = ChoJSONReader <CompleteFile> .LoadText(json.ToString()) .UseJsonSerialization() ) { using (var w = new ChoParquetWriter("CompleteFile.parquet") ) { w.Write(r.Select(rec1 => rec1.FlattenToDictionary())); } //using (var w = new ChoParquetWriter<CompleteFile>("CompleteFile.parquet") // .WithField(f => f.Samples, valueConverter: o => "x", fieldType: typeof(string)) // ) //{ // w.Write(r); //.Select(rec1 => rec1.Flatten().ToDictionary())); //} } }
static void Main(string[] args) { ConvertToNestedObjects(); return; //System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("it"); //using (var p = new ChoCSVReader("Bosch Luglio 2017.csv") // .Configure((c) => c.MayContainEOLInData = true) //Handle newline chars in data // .Configure(c => c.Encoding = Encoding.GetEncoding("iso-8859-1")) //Specify the encoding for reading // .WithField("CodArt", 1) //first column // .WithField("Descrizione", 2) //second column // .WithField("Prezzo", 3, fieldType: typeof(decimal)) //third column // .Setup(c => c.BeforeRecordLoad += (o, e) => // { // e.Source = e.Source.CastTo<string>().Replace(@"""", String.Empty); //Remove the quotes // }) //Scrub the data // ) //{ // //var dt = p.AsDataTable(); // foreach (var rec in p) // Console.WriteLine(rec.Prezzo); //} //return; //using (var parser = new ChoCSVReader("Dict1.csv") // .WithField("AR_ID", 7) // .WithField("AR_TYPE", 8) // .WithFirstLineHeader(true) // .Configure(c => c.IgnoreEmptyLine = true) // ) //{ // var dict = parser.ToDictionary(item => item.AR_ID, item => item.AR_TYPE); // foreach (var kvp in dict) // Console.WriteLine(kvp.Key + " " + kvp.Value); //} //return; //return; using (var parser = new ChoCSVReader("IgnoreLineFile1.csv") .WithField("PolicyNumber", 1) .WithField("VinNumber", 2) .Configure(c => c.IgnoreEmptyLine = true) .Configure(c => c.ColumnCountStrict = true) ) { using (var writer = new ChoJSONWriter("ignoreLineFile1.json") .WithField("PolicyNumber", fieldName: "Policy Number") .WithField("VinNumber", fieldName: "Vin Number") ) writer.Write(parser.Skip(1)); } return; //foreach (dynamic rec in new ChoCSVReader("emp.csv").WithFirstLineHeader() // .WithFields(" id ", "Name") // .Configure(c => c.FileHeaderConfiguration.IgnoreCase = false) // .Configure(c => c.FileHeaderConfiguration.TrimOption = ChoFieldValueTrimOption.None) // .Configure(c => c.ThrowAndStopOnMissingField = true) // //.Configure(c => c.ColumnOrderStrict = false) // ) //{ // Console.WriteLine(rec.id); // //Console.WriteLine(rec[" id "]); //} //return; //foreach (var rec in new ChoCSVReader<EmployeeRec>("emp.csv") // .Configure(c => c.FileHeaderConfiguration.IgnoreCase = false) // .Configure(c => c.ThrowAndStopOnMissingField = true) // ) //{ // Console.WriteLine(rec.Id); //} //return; //Set the culture, if your system different from the file type //HierarchyCSV(); //return; foreach (dynamic rec in new ChoCSVReader("CurrencyQuotes.csv").WithDelimiter(";") .WithField("F1", 14, fieldType: typeof(int)) .WithField("F2", 15, fieldType: typeof(int)) .WithField("F3", 16, fieldType: typeof(int)) .Configure(c => c.ErrorMode = ChoErrorMode.ReportAndContinue) ) { Console.WriteLine("{0}", rec.F1); } return; //string txt = @"ZipCode SortCode 3rd "; //foreach (var x2 in txt.Split(" ", ChoStringSplitOptions.All, '"')) // Console.WriteLine(x2); //return; CultureSpecificDateTimeTest(); return; var x = 1; //Console.WriteLine(@_2); ////var identifierRegex = new System.Text.RegularExpressions.Regex(@"(?<=^| )(?!\d)\w+|(?<= )(?!\d)\w+(?= |$)"); ////Console.WriteLine(Regex.Replace("1sas3", @"(?<=^| )(?!\d)\w+|(?<= )(?!\d)\w+(?= |$)", "_")); ////return; //var i = Microsoft.CSharp.CSharpCodeProvider.CreateProvider("C#").CreateValidIdentifier("@Main 12"); //Console.WriteLine(i.ToValidVariableName()); //return; QuotedCSVTest(); }