Ejemplo n.º 1
0
 public static T TryDeserialize <T>(string body)
 {
     try
     {
         var deserialized = JsonConvert.DeserializeObject <T>(body, new ErrorThrowJsonConverter <T>());
         if (deserialized is IBaseMastodonEntity)
         {
             ((IBaseMastodonEntity)deserialized).RawJson = body;
         }
         return(deserialized);
     }
     catch (JsonReaderException readerException)
     {
         var error = new Error
         {
             RawJson = "Cannot read original JSON"
         };
         var exception = new DeserializeErrorException($"Invalid Json Format", readerException);
         exception.Error = error;
         throw exception;
     }
 }
Ejemplo n.º 2
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            serializer.MissingMemberHandling = MissingMemberHandling.Ignore;
            if (objectType.Name.StartsWith("IEnumerable"))
            {
                var jArray = JArray.Load(reader);
                return(jArray.ToObject <T>());
            }

            var jObject = JObject.Load(reader);

            if (jObject["error"] != null)
            {
                var error = jObject.ToObject <Error>();
                error.RawJson = jObject.ToString();
                var exception = new DeserializeErrorException($"Cant deserialize response, Type {objectType}")
                {
                    Error = error
                };
                throw exception;
            }

            return(jObject.ToObject <T>());
        }