JToken:GetRaw/RawJSONValue有没有办法从JToken中获取Raw/RawJSON值?问题:vardata=JObject.Parse(@"{""SimpleDate"":""2012-05-18T00:00:00Z"",""PatternDate"":""2012-11-07T00:00:00Z""}");varvalue=data["SimpleDate"].Value();该值现在是05/18/201200:00:00,但我需要原始字符串2012-05-18T00:00:00Z。有没有办法获得这个原始价值?此外,我无法更改JObject的创建方式(例如更改设置),因为它作为参数传递到我的类中......(参考:原始NJsonSchema问题)您无法获取原始字符串,日期字符串被识别并且转换为JsonReader自身内部的DateTime结构。如果这样做,您会看到:Console.WriteLine(((JValue)data["SimpleDate"]).Value.GetType());//打印System.DateTime但是,您可以使用以下格式提取带有日期的ISO8601:varvalue=JsonConvert.SerializeObject(data["SimpleDate"]);//值为“2012-05-18T00:00:00Z”这将始终以JSON适当的字符串格式输出JValue。由于您的原始日期采用这种格式,因此它可能符合您的需要。(我真的很惊讶JValue.ToString()以非ISO格式输出日期,因为JObject.ToString()确实以ISO格式输出包含的日期。)如果您能够在读取JObject时更改设置,则可以使用JsonSerializerSettings.DateParseHandling=DateParseHandling.None:varsettings=newJsonSerializerSettings{DateParseHandling=DateParseHandling.None};vardata=JsonConvert.DeserializeObject(@"{""SimpleDate"":""2012-05-18T00:00:00Z"",""PatternDate"":""2012-11-07T00:00:00Z""}",设置);var值=数据["SimpleDate"]。价值();调试.WriteLine(值);//Outputs2012-05-18T00:00:00ZJObject.Parse()没有附带JsonSerializerSettings,所以你需要使用DeserializeObject。此设置最终传播到JsonReader.DateParseHandling。另一种方法-可行-正则表达式SimpleDate(?:.*):(?:.*?)"([0-9|-]{1,}T[0-9|:]+Z)这是一个正则表达式模式来提取您正在寻找的数据-您只需要字符串,所以就这样了。它不是JSON解析方法-但它确实提取字符串。这是上面如何在C#学习教程中工作的示例:JToken:获取原创/原创JSON价值分享,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如有涉及侵权,请点击维权联系管理员删除,如需转载请注明出处:
