Вложенный Json Структура. NET - PullRequest
0 голосов
/ 04 апреля 2020

Я хотел бы получить следующую структуру JSON в своем коде для. NET, но я не могу создать массив [Attributes] правильно из моей базы данных.

Как вам лучше настроить вложенный Json, как это?

{
    "productid": 0,
    "active": true,
    "activepos": true,
    "title": "Test",
    "sku": "7777766666",
    "deliverystatus": "",
    "moneyprice": "1590.00",
    "moneypriceorg": "0.00",
    "moneypricein": "8.00",
    "moneyofferprice": "0.00",
    "friendly": "This is Friendly",
    "barcode": "",
    "attributes": [ "Casual", "Green" ]
}

Вот мой класс, должен ли я иметь отдельный класс для этого? И как я могу присоединиться к классам для создания вложенного JSON?

public class ProductSQL
{
        public string sku { get; set; } 
        public string title { get; set; }
        public string description { get; set; }
        public string moneypricein { get; set; }
        public string moneyprice { get; set; }
        public string ean { get; set; }
        public string [] attributes { get; set; }
}

В моей базе данных SQL у меня есть пять столбцов attribute 1, attribute 2, attribute 3, attribute 4, attribute 5.

Я предполагаю отдельный класс для атрибутов с пятью столбцами, которые затем должны быть объединены?

Буду признателен за любой совет по передовой практике JSON строительство. Это положенный запрос.

1 Ответ

0 голосов
/ 04 апреля 2020

Лучшей практикой (только мое мнение) было бы иметь все поля, которые у вас есть в вашей базе данных (то есть все поля, которые вы SELECT используете), в вашем классе C# вместо того, чтобы собирать их в массив.

Вещество с SQL DB is, строка представляет единицу данных . Если вам нужно сохранить список или массив некоторых данных, относящихся к этому устройству, вы должны использовать для этого отдельную таблицу 1007 *.

Итак, в зависимости от контекстного значения вашего attribute1, attribute2 полей, вы должны либо

  • Создать другую таблицу (для хранения этих атрибутов) с внешним ключом в первой таблице, либо,
  • Если все атрибуты являются фиксированными и действительно принадлежат каждой «единице», и они имеют простое представление в один столбец (или сложный сериализуемый), тогда ваш подход может быть достаточным.

Но, судя по тому, как вы не назвали любой из ваших атрибутов, я подозреваю, что второй вариант, ну, это не вариант для вас.

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

Если вы пытаетесь собрать столбцы строки в массив, это сильный знак плохой дизайн .

Когда вы сталкиваетесь с плохим дизайном Знаки, ну, лучшее, что вы должны сделать, это логически переосмыслить то, что вы хотите.

...