Запрос нескольких сериализованных объектов данныхC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Запрос нескольких сериализованных объектов данных

Сообщение Anonymous »

Мы должны изменить способ получения наших данных — в настоящее время они поступают с SQL-сервера, но теперь доступен «золотой источник», где данные разбиваются на соответствующие объекты, то есть страна, работник, учетная запись работника и Active Directory.
Это образец JSON для страны:
{
"@odata.context": "https://this.company.url/WebAPI/v2/$metadata#Country",
"value": [
{
"CountryId": 100002,
"CountryAlpha2Code": "AD",
"CountryAlpha3Code": "AND",
"CountryNumericCode": "020",
"CountryName": "Andorra",
"CountryStartDate": null,
"CountryEndDate": null,
"RetiredCountryCode": null,
"CountryShortName": "Andorra",
"IsDeleted": false,
"LastUpdateTime": "2017-08-05T09:58:53.44Z",
"LastUpdateBy": "USERID",
"ETLUpdatedDate": "2018-08-18T04:58:31Z"
},
{
"CountryId": 100003,
"CountryAlpha2Code": "AE",
"CountryAlpha3Code": "ARE",
"CountryNumericCode": "784",
"CountryName": "United Arab Emirates (the)",
"CountryStartDate": null,
"CountryEndDate": null,
"RetiredCountryCode": null,
"CountryShortName": "United Arab Emirates",
"IsDeleted": false,
"LastUpdateTime": "2017-08-05T09:58:53.44Z",
"LastUpdateBy": "USERID",
"ETLUpdatedDate": "2018-08-18T04:58:31Z"
},
{...

Если я затем скопирую JSON как классы, я получу
public class Rootobject
{
public string odatacontext { get; set; }
public Value[] value { get; set; }
}

public class Value
{
public int CountryId { get; set; }
public string CountryAlpha2Code { get; set; }
public string CountryAlpha3Code { get; set; }
public string CountryNumericCode { get; set; }
...
public string LastUpdateBy { get; set; }
public DateTime ETLUpdatedDate { get; set; }
}

Я нашел пример, но, имея пять разных объектов, имеющих одинаковые корневые объекты и классы значений, я изо всех сил пытаюсь реализовать это. Я не могу контролировать структуру метаданных JSON, поскольку я не единственный, кто их использует, поэтому я пытаюсь понять, как я могу читать каждый класс, сохраняя их различимость.

К вашему сведению. это запрос, который я хочу воспроизвести (хотя один из классов пока недоступен — FinancialGeographyAddress, но работы достаточно, чтобы занять меня, пока он доступен).
SELECT
UPPER(AD.[AccountName])
,TRIM('.' FROM AD.[LastName]) AS [LastName]
,TRIM('.' FROM AD.[GivenName]) AS [GivenName]
,TRIM('.' FROM AD.[Initials]) AS [Initials]
,LOWER(AD.[EmailAddress])
,C.[CountryAlpha2Code]
,AD.[DisplayName]
,AD.[Enabled]
,CASE
-- Swap display name to be 'lastname, firstname' when 'firstname lastname'
WHEN AD.[DisplayName] IS NULL OR AD.[GivenName] = LEFT(AD.[DisplayName], LEN(AD.[GivenName])) THEN
[LastName] + ', ' + [GivenName]
-- Remove the bracketed suffix and/or any trailing periods
WHEN CHARINDEX('(', AD.[DisplayName]) > 0 THEN
TRIM('.' FROM LEFT(AD.[DisplayName], CHARINDEX('(', AD.[DisplayName]) - 2))
ELSE
TRIM('.' FROM AD.[DisplayName])
END
FROM [wrk].[vwWorker] AS W
INNER JOIN [rpt].[vwFinancialGeographyAddress] AS FGA
ON W.[FinancialGeographyId] = FGA.[FinancialGeographyId] AND FGA.[IsDeleted] = 0
INNER JOIN [rpt].[vwCountry] AS C ON C.[CountryId] = FGA.[CountryId] AND C.[IsDeleted] = 0
INNER JOIN [wrk].[vwWorkerAccount] AS WA ON WA.[WorkerId] = W.[WorkerId] AND WA.[IsDeleted] = 0
INNER JOIN [rpt].[vwActiveDirectory] AS AD ON AD.[ActiveDirectoryId] = WA.[ActiveDirectoryID]
AND AD.[IsDeleted] = 0 AND AD.[Enabled] = 'True'
WHERE
-- Only interested in UK, Guernsey and Ireland
C.[CountryAlpha2Code] IN ('GB', 'GG', 'IE')


Подробнее здесь: https://stackoverflow.com/questions/787 ... ta-objects
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сценарий командной строки для красивой печати сериализованных объектов Java в журналах?
    Гость » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Гость
  • Добавление сериализованных объектов Java
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Какой самый эффективный способ сжатия сериализованных данных Python?
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Явная подпись метода для обеспечения работы сериализованных лямбда-выражений между версиями.
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Получение ценности из сериализованных метаданных WordPress
    Anonymous » » в форуме Php
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

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