Parse Json Date String с Milliseconds [Duplicate]C#

Место общения программистов C#
Ответить
Anonymous
 Parse Json Date String с Milliseconds [Duplicate]

Сообщение Anonymous »

Я пытаюсь проанализировать этот файл JSON с помощью Newtonsoft Parser (v13.0.0.0): < /p>
{
"version": {
"elements": [
{
"key": "DateGenerated",
"value": "2024-12-28T00:01:04.09424Z"
}
]
}
}
< /code>
Моя модель данных выглядит следующим образом: < /p>
public class MyDocument
{
[JsonProperty("version")]
public Version Version { get; set; }
}

public partial class Version
{
[JsonProperty("elements")]
public List Elements { get; set; }
}

public partial class VersionElement
{
[JsonProperty("key")]
public string Key { get; set; }

[JsonProperty("value")]
public string Value { get; set; }
}
< /code>
Вот мой код анализа: < /p>
string data = File.ReadAllText(filePath);

JObject jsonObject = JObject.Parse(data);
MyDocument mydoc = jsonObject.ToObject();
string dateGenerated = mydoc.Version.Elements.Find(x => x.Key == "DateGenerated").Value;

Console.WriteLine(dateGenerated);
< /code>
Проблема, с которой я сталкиваюсь, заключается в строке кода, которая использует метод Linq find (), чтобы получить значение DateGenerated из списка версий. Это неправильно возвращает эту строку:
2024-12-28t00: 01: 04
Не фактическое строковое значение: 2024-12-28t00:01:04.09424z
Если я изменю значение даты, в файле JSON, чтобы быть значением, которое не является датой (например, " Xyz "), он возвращает" xyz "правильно. Но по какой -то причине анализ строки DateTime приводит к отключению миллисекундов. Не уверен, почему это происходит, потому что он должен оценивать ее как строку, поскольку свойство значения в классе VersionElement - это строка. Я ошибаюсь? Как получить свой код, чтобы вернуть точный текст DateGenerated?

Подробнее здесь: https://stackoverflow.com/questions/793 ... lliseconds
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»