Program.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. /*
  2. using System.Globalization;
  3. using CsvHelper;
  4. using CsvHelper.Configuration;
  5. using (var reader = new StreamReader("./test.csv")) {
  6. using (var csv = new CsvReader(
  7. reader, CultureInfo.InvariantCulture))
  8. {
  9. var records = csv.GetRecords<Foo>();
  10. foreach (var record in records) {
  11. Console.WriteLine("{0}, {1}", record.description, record.value);
  12. }
  13. }
  14. }
  15. public class Foo
  16. {
  17. public string description { get; set; }
  18. public double value { get; set; }
  19. }
  20. */
  21. /*
  22. using System.Globalization;
  23. using CsvHelper;
  24. using CsvHelper.Configuration;
  25. // использую не стандартный формат
  26. var config = new CsvConfiguration(
  27. CultureInfo.InvariantCulture) {
  28. Delimiter = ";",
  29. HasHeaderRecord = false };
  30. // создаю тестовые данные
  31. var records = new List<Foo>
  32. {
  33. new Foo {
  34. description ="тест записи\nмногострочного текста",
  35. value = 12.34 },
  36. new Foo {
  37. description = "просто, текст, с запятыми",
  38. value = 0 }
  39. };
  40. using (var writer = new StreamWriter("./test3.csv"))
  41. using (var csv = new CsvWriter(writer, config))
  42. {
  43. csv.WriteRecords(records);
  44. }
  45. public class Foo
  46. {
  47. public string description { get; set; }
  48. public double value { get; set; }
  49. }
  50. */
  51. /*
  52. using Newtonsoft.Json;
  53. var person = new Person
  54. {
  55. name = "Имя",
  56. age = 18,
  57. date = "2024-03-07"
  58. };
  59. string json = JsonConvert.SerializeObject(
  60. person, Formatting.Indented);
  61. Console.WriteLine(json);
  62. class Person
  63. {
  64. public string name { get; set; }
  65. public int age { get; set; }
  66. public string date { get; set; }
  67. }
  68. */
  69. /*
  70. using System.Runtime.Serialization;
  71. using System.Runtime.Serialization.Json;
  72. var PersonList = new List<Person>() {
  73. new Person {name="Иванов", age=25, date=new DateTime(2021,1,1)},
  74. new Person {name="Петров", age=35, date=new DateTime(2021,1,2)}
  75. };
  76. // создаем объект сериализатора, указав, что на входе
  77. // будет МАССИВ объектов Person
  78. var Serializer = new DataContractJsonSerializer(typeof(Person[]));
  79. using (var streamWriter = new StreamWriter("test1.json"))
  80. {
  81. Serializer.WriteObject(
  82. streamWriter.BaseStream,
  83. // Преобразуем список (List) объектов в МАССИВ
  84. PersonList.ToArray()
  85. );
  86. }
  87. [DataContract]
  88. internal class Person
  89. {
  90. [DataMember]
  91. public string name;
  92. [DataMember]
  93. public int age;
  94. [DataMember]
  95. public DateTime date;
  96. }
  97. */
  98. /*
  99. using System.Runtime.Serialization;
  100. using System.Runtime.Serialization.Json;
  101. var Serializer = new DataContractJsonSerializer(typeof(Person[]));
  102. using (var sr = new StreamReader("test1.json"))
  103. {
  104. var PersonList = (Person[])Serializer.ReadObject(sr.BaseStream);
  105. }
  106. [DataContract]
  107. internal class Person
  108. {
  109. // создаем приватную переменную для хранения даты
  110. private DateTime privateDate;
  111. [DataMember]
  112. public string name { get; set; }
  113. [DataMember]
  114. public string age { get; set; }
  115. // создаем ПРИВАТНОЕ СТРОКОВОЕ свойство и с помощью атрибутов меняем ему имя для сериализатора
  116. [DataMember(Name = "date")]
  117. private string StringDate {
  118. get {
  119. return privateDate.ToString("yyyy-MM-dd");
  120. }
  121. set {
  122. // 2021-03-21
  123. // 0123456789
  124. privateDate = new DateTime(
  125. Convert.ToInt32(value.Substring(0, 4)),
  126. Convert.ToInt32(value.Substring(5, 2)),
  127. Convert.ToInt32(value.Substring(8, 2))
  128. );
  129. }
  130. }
  131. // публичное свойство "дата" скрываем от сериализатора
  132. [IgnoreDataMember]
  133. public DateTime date {
  134. get { return privateDate; }
  135. set { privateDate = value; }
  136. }
  137. }
  138. */
  139. /*
  140. using Newtonsoft.Json;
  141. Person person1 = new Person
  142. {
  143. Name = "Влад",
  144. LastName = "Анисимов",
  145. Age = 19,
  146. Birtday = new DateTime(2003, 02, 19).ToShortDateString().ToString()
  147. };
  148. string json = JsonConvert.SerializeObject(person1, Formatting.Indented);
  149. Console.WriteLine(json);
  150. public class Person
  151. {
  152. public string Name { get; set; }
  153. public string LastName { get; set; }
  154. public int Age { get; set; }
  155. public string Birtday { get; set; }
  156. }
  157. */
  158. using Newtonsoft.Json;
  159. string json = @"{""Name"":""Влад"",""LastName"":""Иванов"",""Age"":19, ""Birthday"":""2003.02.18""}";
  160. Person person1 = JsonConvert.DeserializeObject<Person>(json);
  161. Console.WriteLine(person1.Name);
  162. Console.WriteLine(person1.LastName);
  163. Console.WriteLine(person1.Age);
  164. Console.WriteLine(person1.Birthday);
  165. public class Person
  166. {
  167. public string Name { get; set; }
  168. public string LastName { get; set; }
  169. public int Age { get; set; }
  170. public string Birthday { get; set; }
  171. }