TCS54321 Ответов: 1

Как преобразовать набор данных с несколькими таблицами в json


мне нужно преобразовать набор данных с несколькими таблицами в формат json.

Following is the example,


i have a Dataset-X  with multiple n number of tables with different data.i need to convert it into json format like:-

{
  "details": [
    {
      "name": "John",
      "age": "45",
      "gender": "M"
    },
    {
      "name": "Sebastian",
      "age": "34",
      "gender": "M"
    },
    {
      "name": "Marc",
      "age": "23",
      "gender": "M"
    },
    {
      "name": "Natalia",
      "age": "34",
      "gender": "F"
    }
  ],
  "Salary": [
    {
      "name": "John",
      "sal": "45000"
    },
    {
      "name": "Sebastian",
      "sal": "34000"
    }
  ]

}


количество столов не фиксируется. как я могу это сделать? пожалуйста, предложите мне.

Что я уже пробовал:

public string ListToString(DataSet ds)
       {
           int tbl_count = ds.Tables.Count-1;
           int i = 0;
           List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
           if (ds != null && ds.Tables.Count > 0)
           {
               Dictionary<string, object> row1;
               while (tbl_count >= i)
               {

               foreach (DataRow dr in ds.Tables[i].Rows)
               {
                   row1 = new Dictionary<string, object>();
                   foreach (DataColumn col in ds.Tables[i].Columns)
                   {
                       row1.Add(col.ColumnName, dr[col]);
                   }
                   rows.Add(row1);
               }
                   i = i + 1;
               }
           }
           string json = JsonConvert.SerializeObject(rows, Formatting.Indented);
           return json;
       }


но показать результат :-

{
    {
      "name": "John",
      "age": "45",
      "gender": "M"
    },
    {
      "name": "Sebastian",
      "age": "34",
      "gender": "M"
    },
    {
      "name": "Marc",
      "age": "23",
      "gender": "M"
    },
    {
      "name": "Natalia",
      "age": "34",
      "gender": "F"
    }
},
{
    {
      "name": "John",
      "sal": "45000"
    },
    {
      "name": "Sebastian",
      "sal": "34000"
    }
  }

1 Ответов

Рейтинг:
7

Maciej Los

Проверить это: Сериализация набора данных[^]

Вместо:

string json = JsonConvert.SerializeObject(rows, Formatting.Indented);

использовать:
string json = JsonConvert.SerializeObject(ds, Formatting.Indented);


MadMyche

+5

Maciej Los

Большое спасибо.