Использование JSON для заполнения свойств DataGridView - PullRequest
0 голосов
/ 19 сентября 2018

Недавно я пытался читать данные json в своем коде C # с намерением сохранить данные свойств в файле json, который будет загружен во время выполнения.Например, я хотел бы создать файл json для каждой сетки данных и представить каждый столбец как уникальный как раздел в файле json;примерно так:

[
    {
        "colWidth": 1,
        "rowHeight": 10,
        "moreStuff": 20
    },
    {
        "ColWidth": 2,
        "rowHeight": 100,
        "SecondBAID": 200
    },
    {
        "ColWidth": 3,
        "rowHeight": 1000,
        "moreStuff": 2000
    },
    {
        "ColWidth": 4,
        "rowHeight": 10000,
        "moreStuff": 20000,
        "someArray: [true, 5, "Column notes"]
    },
    {
        "ColWidth": 5,
        "rowHeight": 100000,
        "moreStuff": 200000,
        "evenMoreStuff":300000
    }
]

Код, который я сейчас использую для чтения этого файла и назначения данных, выглядит следующим образом:

        public static void LoadJson()
    {
        string json;
        using (StreamReader r = new StreamReader(@"test.json"))
        {
            json = r.ReadToEnd();
        }
        dynamic array = JsonConvert.DeserializeObject(json);

        var list = new List<MyClass>();
        foreach (var section in array)
        {
            var si = new MyClass();
            if (section.Whatever!= null)
            {
                si.Test1 = section.Whatever;
            }
            if (section.Whatever2!= null)
            {
                si.Test2 = section.Whatever2;
            }
            if (section.Whatever3!= null)
            {
                si.Test3 = section.Whatever3;
            }
            if (section.Whatever4!= null)
            {
                si.Test4 = section.Whatever4;
            }

            list.Add(si);
        }
    }

У меня есть несколько вопросов по этому поводу, хотя ...

1) Есть ли более простой способ отфильтровать нулевые значения?Иногда я хочу, чтобы свойство столбца было значением по умолчанию, и я бы предпочел не вкладывать десятки операторов if, если это возможно.Есть ли способ в основном сказать: «Если это свойство не существует в разделе json, просто игнорируйте его» * ​​1009 *

В настоящее время я просто перебираю все возможные свойства, выполняя простой метод get / set вMyClass и хранение переменных (в этом примере я использую «whatevers», поэтому я не публикую сотни строк кода; whatevers представляют допустимые поля в файле json.

2) В настоящее время я добавляюкаждый раздел файла JSON в динамический массив.Как я могу добиться этого, когда я хочу добавить массив свойств в динамический массив?Я хотел бы изменить код C # таким образом, чтобы, если у меня был вложенный массив, он был добавлен в некий многоуровневый список.Каков наилучший способ сделать это?

Я использую это ( Возможно ли иметь вложенный массив json? ) в качестве ссылки на массивы вложений в json.

Любой совет будет потрясающим!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...