using LitJson; public static class JsonDataExtension { public static bool TryGetValue(this JsonData data, string key, out JsonData value) { value = null; if (!data.IsObject) { return false; } if (!data.Keys.Contains(key)) { return false; } value = data[key]; return true; } public static string GetValueOrDefault(this JsonData data, string key, string defaultValue) { if (!data.TryGetValue(key, out var value)) { return defaultValue; } return value.ToString(); } public static int GetValueOrDefault(this JsonData data, string key, int defaultValue) { if (!data.TryGetValue(key, out var value)) { return defaultValue; } return value.ToInt(); } public static long GetValueOrDefault(this JsonData data, string key, long defaultValue) { if (!data.TryGetValue(key, out var value)) { return defaultValue; } return value.ToLong(); } public static double GetValueOrDefault(this JsonData data, string key, double defaultValue) { if (!data.TryGetValue(key, out var value)) { return defaultValue; } return value.ToDouble(); } public static bool GetValueOrDefault(this JsonData data, string key, bool defaultValue) { if (!data.TryGetValue(key, out var value)) { return defaultValue; } return value.ToBoolean(); } }