summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/asterisk/json.h26
-rw-r--r--main/json.c4
-rw-r--r--main/manager.c6
3 files changed, 5 insertions, 31 deletions
diff --git a/include/asterisk/json.h b/include/asterisk/json.h
index baf8cf6a2..43b4b5cf5 100644
--- a/include/asterisk/json.h
+++ b/include/asterisk/json.h
@@ -604,15 +604,6 @@ struct ast_json_iter *ast_json_object_iter_next(struct ast_json *object, struct
const char *ast_json_object_iter_key(struct ast_json_iter *iter);
/*!
- * \brief Retrieve the iterator object for a particular key
- * \since 12.0.0
- *
- * \param key Key of the field the \c ast_json_iter points to
- * \return \ref ast_json_iter object that points to \a key
- */
-struct ast_json_iter *ast_json_object_key_to_iter(const char *key);
-
-/*!
* \brief Get the value from an iterator.
* \since 12.0.0
*
@@ -639,23 +630,6 @@ struct ast_json *ast_json_object_iter_value(struct ast_json_iter *iter);
*/
int ast_json_object_iter_set(struct ast_json *object, struct ast_json_iter *iter, struct ast_json *value);
-/*!
- * \brief Iterate over key/value pairs
- *
- * \note This is a reproduction of the jansson library's \ref json_object_foreach
- * using the equivalent ast_* wrapper functions. This creates a for loop using the various
- * iteration function calls.
- *
- * \param object The \ref ast_json object that contains key/value tuples to iterate over
- * \param key A \c const char pointer key for the key/value tuple
- * \param value A \ref ast_json object for the key/value tuple
- */
-#define ast_json_object_foreach(object, key, value) \
- for (key = ast_json_object_iter_key(ast_json_object_iter(object)); \
- key && (value = ast_json_object_iter_value(ast_json_object_key_to_iter(key))); \
- key = ast_json_object_iter_key(ast_json_object_iter_next(object, ast_json_object_key_to_iter(key))))
-
-
/*!@}*/
/*!@{*/
diff --git a/main/json.c b/main/json.c
index 70830bd13..a403b40cf 100644
--- a/main/json.c
+++ b/main/json.c
@@ -330,10 +330,6 @@ const char *ast_json_object_iter_key(struct ast_json_iter *iter)
{
return json_object_iter_key(iter);
}
-struct ast_json_iter *ast_json_object_key_to_iter(const char *key)
-{
- return (struct ast_json_iter *)json_object_key_to_iter(key);
-}
struct ast_json *ast_json_object_iter_value(struct ast_json_iter *iter)
{
return (struct ast_json *)json_object_iter_value(iter);
diff --git a/main/manager.c b/main/manager.c
index eb01cc536..0e402aeb8 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -1278,12 +1278,16 @@ struct ast_str *ast_manager_str_from_json_object(struct ast_json *blob, key_excl
{
struct ast_str *output_str = ast_str_create(32);
struct ast_json *value;
+ struct ast_json_iter *iter;
const char *key;
if (!output_str) {
return NULL;
}
- ast_json_object_foreach(blob, key, value) {
+ for (iter = ast_json_object_iter(blob); iter; iter = ast_json_object_iter_next(blob, iter)) {
+ key = ast_json_object_iter_key(iter);
+ value = ast_json_object_iter_value(iter);
+
if (exclusion_cb && exclusion_cb(key)) {
continue;
}