JSON:
{
event_name: 'request_queue_items',
event_data: {
amount: 20
},
}
Event handler:
private void OnMessage(string message)
{
if (!message.Contains("{") || !message.Contains("}"))
{
return; // It's not JSON, we don't care...
}
var jsonObject = (JObject)JsonConvert.DeserializeObject(message);
var eventName = jsonObject["event_name"].Value<string>();
var eventData = jsonObject["event_data"].Value<string>();
Console.WriteLine("RECEIVED: " + eventName);
Console.WriteLine("WITH DATA: " + eventData);
Console.WriteLine();
Console.WriteLine();
}
Error message: Cannot cast Newtonsoft.Json.Linq.JObject to Newtonsoft.Json.Linq.JToken
Stack trace:
12/12/2020 15:19:07 [Error] Application Error System.InvalidCastException: Cannot cast Newtonsoft.Json.Linq.JObject to Newtonsoft.Json.Linq.JToken.
at Newtonsoft.Json.Linq.Extensions.Convert[T,U](T token)
at Newtonsoft.Json.Linq.Extensions.Value[T,U](IEnumerable`1 value)
at Newtonsoft.Json.Linq.Extensions.Value[U](IEnumerable`1 value)