public static bool TryConvert(this IJsonValue value, out object propertyValue)
        {
            propertyValue = null;
            if (!value.IsNull())
            {
                switch (value.ValueType)
                {
                case JsonValueType.Boolean:
                    propertyValue = value.AsBool().Value;
                    break;

                case JsonValueType.Number:
                    propertyValue = value.AsNumber().Value;
                    break;

                case JsonValueType.String:
                    propertyValue = value.AsString();
                    break;

                case JsonValueType.Null:
                    break;

                case JsonValueType.Object:
                case JsonValueType.Array:
                default:
                    return(false);
                }
            }
            return(true);
        }
        public void AsBool()
        {
            IJsonValue value = null;

            Assert.IsNull(value.AsBool());
            Assert.IsNull(JsonExtensions.Null().AsBool());
            Assert.IsNull(new JsonObject().AsBool());
            Assert.IsNull(JsonValue.CreateNumberValue(2.0).AsBool());
            Assert.IsNull(JsonValue.CreateStringValue("2.0").AsBool());
            Assert.IsNull(new JsonArray().AsBool());
            Assert.AreEqual(true, JsonValue.CreateBooleanValue(true).AsBool());
        }