Answer the question
In order to leave comments, you need to log in
How to create multiple class objects in a loop?
There is a class for generating JSON
public class TriggerData
{
public List<ПартнерАдреса> партнерАдреса { get; set; } = new List<ПартнерАдреса>();
}
public class ПартнерАдреса
{
public string тип { get; set; }
public string страна { get; set; }
public string регион { get; set; }
public string город { get; set; }
public string представление { get; set; }
}
партнерАдреса = new List<ПартнерАдреса>()
{
new ПартнерАдреса() {
тип = "1",
страна = "2",
регион = "3",
город = "4",
представление = "5"
}
}
Answer the question
In order to leave comments, you need to log in
1C-nick can be seen immediately, poor fellow.
Loop multiple instances
Program.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// Чтение JSON из файла и десериализация.
string pathToFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "PartnerData.json");
string jsonText = File.ReadAllText(pathToFile, Encoding.UTF8);
var parterAddressesFromFile = JsonSerializer.Deserialize<TriggerData>(jsonText);
// Вывод на консоль.
Display(parterAddressesFromFile);
// Создание нового экземпляра класса TriggerData и его заполнение данными.
var data = new TriggerData()
{
PartnerAddresses = new List<PartnerAddress>()
{
new PartnerAddress()
{
Type = "Тип 0001",
Country = "Страна 0001",
Region = "Регион 0001",
City = "Город 0001",
Presentation = "Представление 0001",
},
new PartnerAddress()
{
Type = "Тип 0002",
Country = "Страна 0002",
Region = "Регион 00021",
City = "Город 0002",
Presentation = "Представление 0002",
}
}
};
// Сериализация.
var options = new JsonSerializerOptions
{
Encoder = JavaScriptEncoder.Create(UnicodeRanges.BasicLatin, UnicodeRanges.Cyrillic),
WriteIndented = true,
};
var newJsonText = JsonSerializer.Serialize(data, options);
// Вывод на консоль.
Console.WriteLine(newJsonText);
}
private static void Display(TriggerData data)
{
// Способ 1.
foreach (var address in data.PartnerAddresses)
{
// Внутри Console.WriteLine будет вызван метод ToString для
// экземпляра класса PartnerAddress, у которого этот метод переопределён.
// https://source.dot.net/#System.Private.CoreLib/TextWriter.cs,09da57c2c21a3a44
Console.WriteLine(address);
}
// Способ 2.
//for (int i = 0; i < data.PartnerAddresses.Count; i++)
//{
// Console.WriteLine(data.PartnerAddresses[i]);
//}
}
}
}
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace ConsoleApp
{
public class TriggerData
{
[JsonPropertyName("партнерАдреса")]
public List<PartnerAddress> PartnerAddresses { get; set; }
}
}
using System.Text.Json.Serialization;
namespace ConsoleApp
{
public class PartnerAddress
{
[JsonPropertyName("тип")]
public string Type { get; set; }
[JsonPropertyName("страна")]
public string Country { get; set; }
[JsonPropertyName("регион")]
public string Region { get; set; }
[JsonPropertyName("город")]
public string City { get; set; }
[JsonPropertyName("представление")]
public string Presentation { get; set; }
public override string ToString()
{
return $"{Type}, {Country}, {Region}, {City}, {Presentation}";
}
}
}
{
"партнерАдреса": [
{
"тип": "тип1",
"страна": "страна1",
"регион": "регион1",
"город": "город1",
"представление": "представление1"
},
{
"тип": "тип2",
"страна": "страна2",
"регион": "регион2",
"город": "город2",
"представление": "представление2"
},
{
"тип": "null",
"страна": "null",
"регион": "null",
"город": "null",
"представление": "null"
},
{
"тип": "тип3",
"страна": "страна3",
"регион": "регион3",
"город": "город3",
"представление": "представление3"
}
]
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5</TargetFramework>
</PropertyGroup>
<ItemGroup>
<None Update="PartnerData.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
List is a collection (something like an array where data is stored).
In order to display data in a loop (let's say for)
for(int i = 0; i < {название коллекции}.Count; i++)
{
{название коллекции}[i] // тут выполняешь нужные тебе действия с i- тым элементом коллекции.
}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question