Ballz.Utils.TypeInfoConverter.ReadJson C# (CSharp) Method

ReadJson() public method

public ReadJson ( JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer ) : object
reader Newtonsoft.Json.JsonReader
objectType System.Type
existingValue object
serializer Newtonsoft.Json.JsonSerializer
return object
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var raw = serializer.Deserialize(reader, objectType);
            Debug.Assert(raw is JObject);
            if (raw == null) return null;
            var jObject = (JObject)raw;
            var type = (string)jObject.GetValue("Type");
            Debug.Assert(type != null);
            var data = jObject.GetValue("Data");
            Debug.Assert(data != null);
            var typeT = Type.GetType(type);
            Debug.Assert(typeT != null);
            if (typeT == null) return null;
            return data.ToObject(typeT);
        }