Added empty() operator-bang and isNull()
diff --git a/include/json/value.h b/include/json/value.h
index 2453cb1..de09d5f 100644
--- a/include/json/value.h
+++ b/include/json/value.h
@@ -233,6 +233,7 @@
double asDouble() const;
bool asBool() const;
+ bool isNull() const;
bool isBool() const;
bool isInt() const;
bool isUInt() const;
@@ -248,7 +249,14 @@
/// Number of values in array or object
UInt size() const;
- /// Removes all object members and array elements.
+ /// \brief Return true if empty array, empty object, or null;
+ /// otherwise, false.
+ bool empty() const;
+
+ /// Return isNull()
+ bool operator!() const;
+
+ /// Remove all object members and array elements.
/// \pre type() is arrayValue, objectValue, or nullValue
/// \post type() is unchanged
void clear();
diff --git a/src/lib_json/json_value.cpp b/src/lib_json/json_value.cpp
index 5fbbe13..329b634 100644
--- a/src/lib_json/json_value.cpp
+++ b/src/lib_json/json_value.cpp
@@ -888,6 +888,23 @@
}
+bool
+Value::empty() const
+{
+ if ( isNull() || isArray() || isObject() )
+ return size() == 0u;
+ else
+ return false;
+}
+
+
+bool
+Value::operator!() const
+{
+ return isNull();
+}
+
+
void
Value::clear()
{
@@ -1217,6 +1234,13 @@
//# endif
+bool
+Value::isNull() const
+{
+ return type_ == nullValue;
+}
+
+
bool
Value::isBool() const
{