using Newtonsoft.Json.Linq; namespace JD.GoogleAchievement.Service.Extension { public static class JObjectExtension { public static T GetOrCreateProperty(this JObject jObject, string name) where T : JToken, new() { T child; if (jObject.TryGetValue(name, out JToken token) && token is T) { child = (T)token; } else { jObject.Remove(name); child = new T(); jObject.Add(name, child); } return child; } } }