2017-01-11 2 views
0

Я хочу выполнить итерацию через 2D-массив contents[,] и создать подобный JSON-объект. Структура подобна приведенной ниже. Затем он будет отправлен на конечную точку сервера, обработанной серверной функцией и сохраненной в базе данных.C#: Как вы строите полуструктурированные объекты, аналогичные JSON?

В JavaScript это было бы просто, но это потому, что типизация является динамической. Насколько я могу сказать, у меня есть два варианта для создания СЭМ-структурированных данных в C#:

  1. Создать модель, как указано здесь: Convert C# Object to Json Object, а затем конвертировать в формат JSON
  2. Создайте вложенную Hashtable (не потому что я не буду знать типы значений до тех пор, пока мне не понадобится построить объект)

Каков нормальный способ сделать это на C#? Я также натолкнулся на термин «POCO», который, кажется, несколько соответствует пункту 1.?

[ 
    { 
     tableName: someName, 
     fields: [ordered, list, of, field, names], 
     values: [ 
      [ordered, list, of, cell, row, values], 
      [ordered, list, of, cell, row, values], 
      [ordered, list, of, cell, row, values] 
     ] 
    }, 
    { 
     tableName: someName, 
     fields: [ordered, list, of, field, names], 
     values: [ 
      [ordered, list, of, cell, row, values], 
      [ordered, list, of, cell, row, values], 
      [ordered, list, of, cell, row, values] 
     ] 
    }, 
    etc 
] 
+2

C# имеет динамические типы: https://msdn.microsoft.com/en-us/library/dd264736.aspx И библиотека JSON.Net широко используется для управления JSON: http://www.newtonsoft.com/ json (3,120,111 загрузки последней версии через nuget). Что касается того, какой подход лучше всего подходит для вас, я не могу ответить на этот вопрос, поскольку вопрос слишком широк, и я не знаю, какую работу вы делаете, данные, которыми вы пользуетесь, или ваши личные предпочтения. Существует много подходов, которые можно было бы предпринять. – AndyJ

+1

Какая часть структуры динамична? Это выглядит очень структурированным для меня. У вас есть таблица с именем, которое имеет список полей и данные, которые будут помещены в эти поля. Просто ли значения данных являются разными типами? Или я чего-то не хватает? –

+0

Да. Только значения имеют разные типы. –

ответ

1

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

class MyObject 
{ 
    String Tablename; 
    List<Field> myFields = new List<Field>(); 
    List<object> values = new List<object>(); 
} 

Или вы можете просто создать объект Json напрямую и проанализировать это, если вам нужно получить дополнительные данные.

Смежные вопросы