public static int? GetIntValueOnly(this JToken obj, [LocalizationRequired(false)] string key) {
var value = obj[key];
if (value == null || value.Type != JTokenType.String && value.Type != JTokenType.Integer &&
value.Type != JTokenType.Float) return null;
var result = value.ToString();
if (string.IsNullOrEmpty(result)) return null;
double val;
return !double.TryParse(result, NumberStyles.Any, CultureInfo.InvariantCulture, out val) ? (int?)null : (int)val;
}