Создание различных строк JSON из внутренних моделей C#C#

Место общения программистов C#
Ответить
Anonymous
 Создание различных строк JSON из внутренних моделей C#

Сообщение Anonymous »

Мне нужно создать эффективный способ заполнения различных строк JSON для сторонних веб-API на основе данных из внутренних моделей.
Например, предположим, что у меня есть следующая внутренняя модель адреса

Код: Выделить всё

public class Address
{
public int Id { get; set; }

public string? AddressLineOne { get; set; }

public string? AddressLineTwo { get; set; }

public string? CityName { get; set; }

public string? CountryName { get; set; }

public string? StateCode { get; set; }

public int? PostalCode { get; set; }

public int? PostalCodeExtended { get; set; }
}
который мне нужно использовать для создания следующей строки JSON для поставщика A

Код: Выделить всё

    "BillAddr": {
"City": "Half Moon Bay",
"Line1": "12 Ocean Dr.",
"Line2": "Apt 1002",
"PostalCode": "94213",
"CountrySubDivisionCode": "CA",
"Id": "3"
}
и следующую строку JSON для поставщика B

Код: Выделить всё

    "address": {
"streetLines":
[
"12 Ocean Dr.",
"Apt 1002"
],
"city": "Half Moon Bay",
"stateOrProvinceCode": "CA",
"postalCode": "94213-1234",
"countryCode": "US"
}
Кроме того, поскольку у каждого поставщика есть несколько API, которые будут использоваться, я хочу иметь метод для записи каждого дочернего объекта «адрес» для данного поставщика.
В результате моих исследований я обнаружил следующие варианты:
  • Создать модель для каждого поставщика и сериализовать
  • Используйте Newtonsoft, как показано в этом примере https://www.newtonsoft.com/json/help/ht ... toJSON.htm
  • Используйте System.Text.Json, но у меня нет Пока не нашел хорошего примера для подражания.
Какой вариант лучше? Если System.Text.JSON — лучший вариант, можете ли вы привести пример его использования. Если есть лучший вариант, то какой? Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/788 ... ls-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»