public static string GetStringValueOnly(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();
return string.IsNullOrEmpty(result) ? null : result;
}