我在Azure Function
中从EventHub
接收以下JSON
Event {"Id":"cfbfbc8900b2","DateTime:"2021-04-29T08:01:26","NewId":null,"UserId":null}
我需要知道如何取消这个有效载荷的序列化,因为我得到了以下错误。我已经尝试了SO的一些解决方案来取消序列化,但由于在JSON
的开头保留了关键字Event
,所以它们似乎都不起作用
Newtonsoft.Json.JsonReaderException: 'Unexpected character encountered while parsing value: E. Path '', line 0, position 0.'
这是C#代码
foreach (EventData eventDataItem in events)
{
try
{
var eventPayload = Encoding.UTF8.GetString(eventDataItem.EventBody);
dynamic eventData;
using (StringReader reader = new StringReader(eventPayload))
{
string line;
while ((line = reader.ReadLine()) != null)
{
eventData = JsonConvert.DeserializeObject<dynamic>(line);
}
}
}
}
json中有一个错误,"DateTime应该是";DateTime";
{"Id":"cfbfbc8900b2","DateTime:"2021-04-29T08:01:26",...
您现在可以反序列化
Event data = JsonConvert.DeserializeObject<Event>(json);
public class Event
{
public string Id { get; set; }
public DateTime DateTime { get; set; }
public string NewId { get; set; }
public string UserId { get; set; }
}