У меня есть служба, которая сериализует DataTable в JSON, и когда я получаю данные службы, я хочу десериализовать обратно в DataTable ... проблема в том, что я не могу, потому что JSON. NET добавление в сериализацию чего-то, что затем не распознается ...
Все значения DateTime в моей DataTable выглядят так:
"date_time_value":{"IsValidDateTime":true,"Year":2020,"Month":4,"Day":20,"Hour":14,"Minute":50,"Second":46,"Microsecond":0,"Millisecond":0}
JSON. NET вывод сериализованный JSON, как это ... так что я ожидаю, что он также знает, как десериализовать его ... как мне получить сериализованную дату в виде простой строки, чтобы я мог десериализовать данные?
EDIT: у меня есть метод контроллера, возвращающий данные.
[HttpPost]
[Route("Query")]
public ActionResult<string> Query([FromBody]SqlDto content)
{
return Ok(_mySqlGenericService.Query(content.HostnameOrIpAddress, content.Username, content.Password, content.SqlCommand, content.SqlParameters));
}
И метод, который вызывает контроллер:
public string Query(string hostnameOrIp, string username, string password, string sqlCommand, List<SqlParameter> sqlParameters = null)
{
var mySqlDatabaseConnection = new MySqlDatabaseConnection(hostnameOrIp, username, password);
DataTable dt = mySqlDatabaseConnection.Query(sqlCommand, ConvertQueryParamListToTupleList(sqlParameters));
return JsonConvert.SerializeObject(dt);
}
Класс MySqlDatabaseConnection
просто подключается к MySQL database и метод Query
возвращают DataTable.
Обратите внимание, что независимо от того, возвращаю ли я DataTable напрямую или использую метод JsonConvert.SerializeObject()
для преобразования его в строку JSON перед возвратом, возвращаемое значение заканчивается будучи тем же самым JSON. * 1 019 *
РЕДАКТИРОВАТЬ 2: Для тех, кто может прийти к рассмотрению этого вопроса позже, я ошибочно предполагал, что DataTable на самом деле был на низком уровне ... Я предполагал, что это была просто какая-то форма массива строк, и это совершенно неправильно ... Объект DataTable гораздо сложнее, чем я предполагал. Он обрабатывает входные данные из разных источников данных по-разному (поэтому данные MS SQL выглядят иначе, чем MySQL данные, поскольку они загружаются в DataTable в разных форматах объектов).