public static Response ParseFrom(long token, string buf) { Log.Trace("JSON Received: " + buf); var jsonResp = JObject.Parse(buf); var responseType = jsonResp["t"].ToObject<ResponseType>(); var responseNotes = jsonResp["n"]?.ToObject<List<ResponseNote>>() ?? new List<ResponseNote>(); ErrorType? et = jsonResp["e"]?.ToObject<ErrorType>(); Builder res = new Builder(token, responseType); if( et != null ) { res.errorType = et.Value; } return res.SetProfile((JArray)jsonResp["p"]) .SetBacktrace((JArray)jsonResp["b"]) .SetData((JArray)jsonResp["r"] ?? new JArray()) .Build(); }