首页 > 解决方案 > 从 JSON 路径读取日期时间并将其写入另一个文件时维护源字符串格式

问题描述

如何让 Newtonsoft.Json 在不转换或以其他方式干预值的情况下读取路径的值?

这段代码

jsonObject.SelectToken("path.to.nested.value").ToString()

返回此字符串

03/07/2019 00:02:12

从 JSON 文档中的这个字符串

2019-07-03T00:02:12.1542739Z

它丢失了它的原始格式,在这种情况下是 ISO 8601。

我希望所有值都以字符串的形式逐字传递。我正在编写代码以将 JSON 重塑为其他格式,并且我不想在它们通过我的 .NET 代码时影响这些值。

我需要改变什么?我不喜欢 Newtonsoft.Json 顺便说一句。

标签: c#json.net

解决方案


我明白了,我想。

jsonObject.SelectToken(path).ToString(Newtonsoft.Json.Formatting.None);

其他选择是什么都不提供或这个。

Newtonsoft.Json.Formatting.Indented

这是这个 API 中奇怪的逻辑,因为您认为这None意味着不缩进,但它意味着不......我不知道。不挂断....

好的,None否则Indented返回

"2019-07-03T00:02:12.1542739Z"

(包括引号)但使用不带参数的重载返回

03/07/2019 00:02:12

这是一个奇怪的 API 设计¯\_(ツ)_/¯

这是一个屏幕截图,显示了非常简单的重现代码。

代码和变量检查器的屏幕截图


推荐阅读