internal static bool TryJObject()

in src/PSRule.Rules.Azure/Data/Template/ExpressionHelpers.cs [691:731]


    internal static bool TryJObject(object o, out JObject value)
    {
        value = null;
        if (o is JObject jObject)
        {
            value = jObject;
            return true;
        }
        else if (o is IDictionary<string, string> dss)
        {
            value = new JObject();
            foreach (var kv in dss)
            {
                if (!value.ContainsKey(kv.Key))
                    value.Add(kv.Key, JToken.FromObject(kv.Value));
            }
            return true;
        }
        else if (o is IDictionary<string, object> dso)
        {
            value = new JObject();
            foreach (var kv in dso)
            {
                if (!value.ContainsKey(kv.Key))
                    value.Add(kv.Key, JToken.FromObject(kv.Value));
            }
            return true;
        }
        else if (o is IDictionary d)
        {
            value = new JObject();
            foreach (DictionaryEntry kv in d)
            {
                var key = kv.Key.ToString();
                if (!value.ContainsKey(key))
                    value.Add(key, JToken.FromObject(kv.Value));
            }
            return true;
        }
        return false;
    }