Сравните две строки:
Код: Выделить всё
"{\"Table1\":[{\"DATER\":\"2026-02-16T11:17:43.803\"}]}"
"{\"Table1\":[{\"DATER\":null},{\"DATER\":\"2026-02-16T11:17:43.803\"}]}"
Код: Выделить всё
System.Data.DataSet moDataSet = null;
Newtonsoft.Json.JsonSerializerSettings oSettings = new Newtonsoft.Json.JsonSerializerSettings();
oSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
moDataSet = Newtonsoft.Json.JsonConvert.DeserializeObject((string)moData);
Код: Выделить всё
{DATER}
AllowDBNull: True
AutoIncrement: False
AutoIncrementSeed: 0
AutoIncrementStep: 1
Caption: "DATER"
ColumnMapping: Element {1}
ColumnName: "DATER"
Container: Nothing
DataType: {Name = "DateTime" FullName = "System.DateTime"}
DateTimeMode: UnspecifiedLocal {3}
DefaultValue: {}
DesignMode: False
Events: {System.ComponentModel.EventHandlerList}
Expression: ""
ExtendedProperties: Count = 0
MaxLength: -1
[Namespace]: ""
Ordinal: 0
Prefix: ""
[ReadOnly]: False
Site: Nothing
Table: {Table1}
Unique: False
Код: Выделить всё
{DATER}
AllowDBNull: True
AutoIncrement: False
AutoIncrementSeed: 0
AutoIncrementStep: 1
Caption: "DATER"
ColumnMapping: Element {1}
ColumnName: "DATER"
Container: Nothing
DataType: {Name = "String" FullName = "System.String"}
DateTimeMode: UnspecifiedLocal {3}
DefaultValue: {}
DesignMode: False
Events: {System.ComponentModel.EventHandlerList}
Expression: ""
ExtendedProperties: Count = 0
MaxLength: -1
[Namespace]: ""
Ordinal: 0
Prefix: ""
[ReadOnly]: False
Site: Nothing
Table: {Table1}
Unique: False
Код: Выделить всё
"02/16/2026 11:17:43"
Почему, если он не может определить тип данных столбца, он все равно интерпретирует строку как значение «дата-время», а затем преобразует ее в формат «дд/ММ/гггг ЧЧ:мм:сс»? В исходном JSON его значение было «2026-02-16T11:17:43.803», и хотя теперь оно возвращается в виде строки, мы можем с этим справиться, поскольку оно в формате ISO, а локальные региональные настройки не имеют значения. Но мы не можем справиться с «16.02.2026 11:17:43»
Мне очень не хватает опыта в сериализации и десериализации JSON, что также не позволяет мне легко находить здесь «похожие вопросы» или «дубликаты». Я надеюсь, что кто-нибудь сможет дать мне простое решение для вызова DeserializeObject, которое не позволит ему изменить формат строки DATER во втором примере
Подробнее здесь: https://stackoverflow.com/questions/798 ... t-when-the
Мобильная версия