27 lines
621 B
C#
27 lines
621 B
C#
using Newtonsoft.Json.Linq;
|
|
|
|
namespace JD.GoogleAchievement.Service.Extension
|
|
{
|
|
public static class JObjectExtension
|
|
{
|
|
public static T GetOrCreateProperty<T>(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;
|
|
}
|
|
}
|
|
}
|