Skip to content

Commit

Permalink
partial
Browse files Browse the repository at this point in the history
  • Loading branch information
cdunn2001 committed Jan 20, 2015
1 parent 7956ccd commit 9de2c2d
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
9 changes: 9 additions & 0 deletions include/json/value.h
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,15 @@ Json::Value obj_value(Json::objectValue); // {}
Value removeMember(const char* key);
/// Same as removeMember(const char*)
Value removeMember(const std::string& key);
/** \brief Remove the indexed array element.
O(n) expensive operations.
Update 'removed' iff removed.
(This is a better pattern than removeMember().)
JSON_FAIL if !isValidIndex(i) or if not arrayObject
\return true iff removed
*/
bool removeIndex(ArrayIndex i, Value* removed);

/// Return true if the object has a member named key.
bool isMember(const char* key) const;
Expand Down
8 changes: 8 additions & 0 deletions src/lib_json/json_value.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1018,6 +1018,14 @@ Value Value::removeMember(const std::string& key) {
return removeMember(key.c_str());
}

bool Value::removeIndex(ArrayIndex i, Value* removed) {
JSON_ASSERT_MESSAGE(this->type_ == arrayValue,
"in Json::Value::removeIndex(): requires arrayValue");
JSON_ASSERT_MESSAGE(this->isValidIndex(i),
"invalid index i=" << i << " for array of size " << this->size());
return true;
}

#ifdef JSON_USE_CPPTL
Value Value::get(const CppTL::ConstString& key,
const Value& defaultValue) const {
Expand Down

0 comments on commit 9de2c2d

Please sign in to comment.