Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 5 additions & 10 deletions include/json/value.h
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ class JSON_API Value {
/// that name.
/// \param key may contain embedded nulls.
const Value& operator[](std::string_view key) const;
#else
#endif
/// Access an object value by name, create a null member if it does not exist.
/// \note Because of our implementation, keys are limited to 2^30 -1 chars.
/// Exceeding that will cause an exception.
Expand All @@ -516,7 +516,6 @@ class JSON_API Value {
/// that name.
/// \param key may contain embedded nulls.
const Value& operator[](const String& key) const;
#endif
/** \brief Access an object value by name, create a null member if it does not
* exist.
*
Expand All @@ -534,15 +533,14 @@ class JSON_API Value {
/// Return the member named key if it exist, defaultValue otherwise.
/// \note deep copy
Value get(std::string_view key, const Value& defaultValue) const;
#else
#endif
/// Return the member named key if it exist, defaultValue otherwise.
/// \note deep copy
Value get(const char* key, const Value& defaultValue) const;
/// Return the member named key if it exist, defaultValue otherwise.
/// \note deep copy
/// \param key may contain embedded nulls.
Value get(const String& key, const Value& defaultValue) const;
#endif
/// Return the member named key if it exist, defaultValue otherwise.
/// \note deep copy
/// \note key may contain embedded nulls.
Expand Down Expand Up @@ -589,12 +587,11 @@ class JSON_API Value {
/// \post type() is unchanged
#if JSONCPP_HAS_STRING_VIEW
void removeMember(std::string_view key);
#else
#endif
void removeMember(const char* key);
/// Same as removeMember(const char*)
/// \param key may contain embedded nulls.
void removeMember(const String& key);
#endif
/** \brief Remove the named map member.
*
* Update 'removed' iff removed.
Expand All @@ -603,12 +600,11 @@ class JSON_API Value {
*/
#if JSONCPP_HAS_STRING_VIEW
bool removeMember(std::string_view key, Value* removed);
#else
#endif
bool removeMember(String const& key, Value* removed);
/// Same as removeMember(const char* begin, const char* end, Value* removed),
/// but 'key' is null-terminated.
bool removeMember(const char* key, Value* removed);
#endif
/// Same as removeMember(String const& key, Value* removed)
bool removeMember(const char* begin, const char* end, Value* removed);
/** \brief Remove the indexed array element.
Expand All @@ -623,14 +619,13 @@ class JSON_API Value {
/// Return true if the object has a member named key.
/// \param key may contain embedded nulls.
bool isMember(std::string_view key) const;
#else
#endif
/// Return true if the object has a member named key.
/// \note 'key' must be null-terminated.
bool isMember(const char* key) const;
/// Return true if the object has a member named key.
/// \param key may contain embedded nulls.
bool isMember(const String& key) const;
#endif
/// Same as isMember(String const& key)const
bool isMember(const char* begin, const char* end) const;

Expand Down
15 changes: 5 additions & 10 deletions src/lib_json/json_value.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1200,7 +1200,7 @@ const Value& Value::operator[](std::string_view key) const {
Value& Value::operator[](std::string_view key) {
return resolveReference(key.data(), key.data() + key.length());
}
#else
#endif
const Value& Value::operator[](const char* key) const {
Value const* found = find(key, key + strlen(key));
if (!found)
Expand All @@ -1221,7 +1221,6 @@ Value& Value::operator[](const char* key) {
Value& Value::operator[](const String& key) {
return resolveReference(key.data(), key.data() + key.length());
}
#endif

Value& Value::operator[](const StaticString& key) {
return resolveReference(key.c_str());
Expand Down Expand Up @@ -1265,14 +1264,13 @@ Value Value::get(char const* begin, char const* end,
Value Value::get(std::string_view key, const Value& defaultValue) const {
return get(key.data(), key.data() + key.length(), defaultValue);
}
#else
#endif
Value Value::get(char const* key, Value const& defaultValue) const {
return get(key, key + strlen(key), defaultValue);
}
Value Value::get(String const& key, Value const& defaultValue) const {
return get(key.data(), key.data() + key.length(), defaultValue);
}
#endif

bool Value::removeMember(const char* begin, const char* end, Value* removed) {
if (type() != objectValue) {
Expand All @@ -1292,14 +1290,13 @@ bool Value::removeMember(const char* begin, const char* end, Value* removed) {
bool Value::removeMember(std::string_view key, Value* removed) {
return removeMember(key.data(), key.data() + key.length(), removed);
}
#else
#endif
bool Value::removeMember(const char* key, Value* removed) {
return removeMember(key, key + strlen(key), removed);
}
bool Value::removeMember(String const& key, Value* removed) {
return removeMember(key.data(), key.data() + key.length(), removed);
}
#endif

#ifdef JSONCPP_HAS_STRING_VIEW
void Value::removeMember(std::string_view key) {
Expand All @@ -1312,7 +1309,7 @@ void Value::removeMember(std::string_view key) {
CZString::noDuplication);
value_.map_->erase(actualKey);
}
#else
#endif
void Value::removeMember(const char* key) {
JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue,
"in Json::Value::removeMember(): requires objectValue");
Expand All @@ -1323,7 +1320,6 @@ void Value::removeMember(const char* key) {
value_.map_->erase(actualKey);
}
void Value::removeMember(const String& key) { removeMember(key.c_str()); }
#endif

bool Value::removeIndex(ArrayIndex index, Value* removed) {
if (type() != arrayValue) {
Expand Down Expand Up @@ -1357,14 +1353,13 @@ bool Value::isMember(char const* begin, char const* end) const {
bool Value::isMember(std::string_view key) const {
return isMember(key.data(), key.data() + key.length());
}
#else
#endif
bool Value::isMember(char const* key) const {
return isMember(key, key + strlen(key));
}
bool Value::isMember(String const& key) const {
return isMember(key.data(), key.data() + key.length());
}
#endif

Value::Members Value::getMemberNames() const {
JSON_ASSERT_MESSAGE(
Expand Down
Loading