我可以使用JRaw Class浏览JSON数组吗?
在Linqpad中,我不确定如何在json数组中包含的两个对象中提取日期时间字符串:
string payload = @"[
{
""measureTime"": ""2019-10-19T14:43:00.8183732Z"",
""sensor1"": 342.0,
""sensor2"": 32.0,
""sensor3"": 0.0324,
""sensor4"": -893.438
},
{
""measureTime"": ""2019-10-19T19:43:00.7473732Z"",
""sensor1"": 348.0,
""sensor2"": 32.0,
""sensor3"": 0.0324,
""sensor4"": -893.438
}
]";
JRaw raw = new JRaw(payload);
raw.HasValues.Dump();
raw.Next.Dump();
raw.Children().Dump();
这些转储的输出是:
False
null
(0 items)
对于上下文,我正在尝试使用Azure API管理检查传入请求的正文中包含的json,并验证其中包含的所有日期时间字符串是否都与{{3}}的日期时间一致格式。如果我能做的话,这将非常简单:
JsonConvert.DeserializeObject<JArray>(context.Request.Body.As<string>(preserveContent: true),
new JsonSerializerSettings {DateParseHandling = DateParseHandling.None});
但是,“ Newtonsoft.Json.JsonSerializerSettings”为RFC3339
如果我仅使用JArray.Parse(),那么生成的JArray会将datetime字符串存储在DateTime对象中,而不是原始字符串中,这意味着我无法验证字符串的格式,因为它最初是传入的。
我确实可以访问JRaw类,并认为我也许可以以某种方式利用它。