Json解析器发生了什么?. NET (Newtonsoft)与时间戳字符串?


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();
}
使用<<p> (em> Newtonsoft。Json version12.0.3]

为什么打印结果是02/24/2021 13:15:432012-02-24 t13:15:43 z,我只需要值作为一个字符串…发生了什么事?

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);

最新更新