gpt4 book ai didi

c# - 带有时间戳字符串的 Json.NET (Newtonsoft) 的解析器发生了什么?

转载 作者:行者123 更新时间:2023-12-04 00:51:13 25 4
gpt4 key购买 nike

static void Main(string[] args)
{
string someJsonString = "{\"time\": \"2021-02-24T13:15:43Z\"}";
JObject someJsonObject = JObject.Parse(someJsonString);
string time = someJsonObject.GetValue("time").Value<string>();
Console.WriteLine(time);
Console.ReadLine();
}

[使用 Newtonsoft.Json 版本 12.0.3]

为什么打印的结果是 02/24/2021 13:15:43 而它应该是 2021-02-24T13:15:43Z,我只需要字符串形式的值...发生了什么事?

最佳答案

JSON.Net 会自动将日期格式的字符串解析为DateTime 对象。如果你想防止这种情况,你要么需要使用一个具体的类:

public class Foo
{
public string Time { get; set; }
}

像这样反序列化:

var f = JsonConvert.DeserializeObject<Foo>(someJsonString);

或者如果你真的需要一个JObject,你可以使用一个合适的JsonReader对象,这样你就可以配置解析的工作方式,例如:

using var stringReader = new StringReader(someJsonString);
using var reader = new JsonTextReader(stringReader);
reader.DateParseHandling = DateParseHandling.None;
JObject someJsonObject = JObject.Load(reader);

关于c# - 带有时间戳字符串的 Json.NET (Newtonsoft) 的解析器发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66351853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com