2014-02-04 12 views
1

Мне нужно преобразовать таблицу данных в формат JSON на vb.net. Я написал код для этого, но я хочу в другом формате. Я добавил dll NewtonSoft.json и заполнил datatable из базы данных для этого, Код, который я написал ... '' '' Мой dt заполнен данными. Я написал код в веб-службыПреобразование datatable в формат json

Dim jsonString As String = JsonConvert.SerializeObject(dt) 

Я получаю выход, как -

{"people":[{"ref":"108414","first_name":"George","last_name":"Buss","display_name":"George Buss","title":"Director of Experience & Education","organization_name":"Minnetrista","bio":"","address":"","city":null,"state":"IN","zipcode":"","country":"United States","phone_work":"","email":"","website":"","tags":"[Speaker,Attendees]","presenter_at":"[2307,8976]","organization_ref":"36441"}] } 

Но "tags" значение "[Speaker,Attendees]" вместо этого мне нужно в "tags":["Speaker","Attendees"] и то же самое для presenter_at также

Из моего кода я непосредственно взял datatable и преобразовал его в json. Но для этого я думаю, что модифицированные данные json, потому что эти данные не статичны, они поступают из базы данных. И я поменяю человека на человека. Кто-нибудь знает решение, пожалуйста, помогите мне в этом. Спасибо в продвинутом режиме.

+1

Какое значение в вашей базе данных для "tags": "[Speaker, Attendees]" –

+0

тот же динамик и участники и имя столбца как теги, я присоединился к этому с COALESCE при запросе SQL-сервера. – User26

ответ

0
public string DataTableToJSONWithJavaScriptSerializer(DataTable table) 
     { 
      JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); 
      List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>(); 
      Dictionary<string, object> childRow; 
      foreach (DataRow row in table.Rows) 
      { 
       childRow = new Dictionary<string, object>(); 
       foreach (DataColumn col in table.Columns) 
       { 
        childRow.Add(col.ColumnName, row[col]); 
       } 
       parentRow.Add(childRow); 
      } 
      return jsSerializer.Serialize(parentRow); 
     } 

Этот метод возвращает строку json. Надеюсь, это поможет вам.

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