ebakhtin b0ba21257c first | vor 8 Monaten | |
---|---|---|
Program.cs | vor 8 Monaten | |
lab5_file_types.csproj | vor 8 Monaten | |
lab5_file_types.sln | vor 8 Monaten | |
readme.md | vor 8 Monaten |
using System.Globalization;
using CsvHelper;
using CsvHelper.Configuration;
using (var reader = new StreamReader("./test.csv")) {
using (var csv = new CsvReader(
reader, CultureInfo.InvariantCulture))
{
var records = csv.GetRecords<Foo>();
foreach (var record in records) {
Console.WriteLine("{0}, {1}", record.description, record.value);
}
}
}
public class Foo
{
public string description { get; set; }
public double value { get; set; }
}
Результат:
строка с пробелами, 123,15
строка
с переносом
строки, 456
using System.Globalization;
using CsvHelper;
using CsvHelper.Configuration;
// использую не стандартный формат
var config = new CsvConfiguration(
CultureInfo.InvariantCulture) {
Delimiter = ";",
HasHeaderRecord = false };
// создаю тестовые данные
var records = new List<Foo>
{
new Foo {
description ="тест записи\nмногострочного текста",
value = 12.34 },
new Foo {
description = "просто, текст, с запятыми",
value = 0 }
};
using (var writer = new StreamWriter("./test3.csv"))
using (var csv = new CsvWriter(writer, config))
{
csv.WriteRecords(records);
}
public class Foo
{
public string description { get; set; }
public double value { get; set; }
}
Результат в файле:
"тест записи
многострочного текста";12.34
просто, текст, с запятыми;0
using Newtonsoft.Json;
var person = new Person
{
name = "Имя",
age = 18,
date = "2024-03-07"
};
string json = JsonConvert.SerializeObject(
person, Formatting.Indented);
Console.WriteLine(json);
class Person
{
public string name { get; set; }
public int age { get; set; }
public string date { get; set; }
}
Результат:
{
"name": "Имя",
"age": 18,
"date": "2024-03-07"
}
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
var PersonList = new List<Person>() {
new Person {name="Иванов", age=25, date=new DateTime(2021,1,1)},
new Person {name="Петров", age=35, date=new DateTime(2021,1,2)}
};
// создаем объект сериализатора, указав, что на входе
// будет МАССИВ объектов Person
var Serializer = new DataContractJsonSerializer(typeof(Person[]));
using (var streamWriter = new StreamWriter("test1.json"))
{
Serializer.WriteObject(
streamWriter.BaseStream,
// Преобразуем список (List) объектов в МАССИВ
PersonList.ToArray()
);
}
[DataContract]
internal class Person
{
[DataMember]
public string name;
[DataMember]
public int age;
[DataMember]
public DateTime date;
}
Результат в cозданном JSON файле:
[{"age":25,"date":"\/Date(1609448400000+0300)\/","name":"Иванов"},{"age":35,"date":"\/Date(1609534800000+0300)\/","name":"Петров"}]
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
var Serializer = new DataContractJsonSerializer(typeof(Person[]));
using (var sr = new StreamReader("test1.json"))
{
var PersonList = (Person[])Serializer.ReadObject(sr.BaseStream);
}
[DataContract]
internal class Person
{
// создаем приватную переменную для хранения даты
private DateTime privateDate;
[DataMember]
public string name { get; set; }
[DataMember]
public string age { get; set; }
// создаем ПРИВАТНОЕ СТРОКОВОЕ свойство и с помощью атрибутов меняем ему имя для сериализатора
[DataMember(Name = "date")]
private string StringDate {
get {
return privateDate.ToString("yyyy-MM-dd");
}
set {
// 2021-03-21
// 0123456789
privateDate = new DateTime(
Convert.ToInt32(value.Substring(0, 4)),
Convert.ToInt32(value.Substring(5, 2)),
Convert.ToInt32(value.Substring(8, 2))
);
}
}
// публичное свойство "дата" скрываем от сериализатора
[IgnoreDataMember]
public DateTime date {
get { return privateDate; }
set { privateDate = value; }
}
}
using Newtonsoft.Json;
Person person1 = new Person
{
Name = "Влад",
LastName = "Анисимов",
Age = 19,
Birtday = new DateTime(2003, 02, 19).ToShortDateString().ToString()
};
string json = JsonConvert.SerializeObject(person1, Formatting.Indented);
Console.WriteLine(json);
public class Person
{
public string Name { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public string Birtday { get; set; }
}
Результат:
{
"Name": "Влад",
"LastName": "Анисимов",
"Age": 19,
"Birtday": "19.02.2003"
}
using Newtonsoft.Json;
string json = @"{""Name"":""Влад"",""LastName"":""Иванов"",""Age"":19, ""Birthday"":""2003.02.18""}";
Person person1 = JsonConvert.DeserializeObject<Person>(json);
Console.WriteLine(person1.Name);
Console.WriteLine(person1.LastName);
Console.WriteLine(person1.Age);
Console.WriteLine(person1.Birthday);
public class Person
{
public string Name { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public string Birthday { get; set; }
}
Результат:
Влад
Иванов
19
2003.02.18