- struct json_object *o, *v, *r, *x;
-
- r = json_object_new_object();
- o = afb_req_json(req);
-
- if (json_object_object_get_ex(o, _verbosity_, &v)) {
- x = json_object_new_object();
- json_object_object_add(r, _verbosity_, x);
- get_verbosity(x, v);
- }
-
- if (json_object_object_get_ex(o, _apis_, &v)) {
- x = json_object_new_object();
- json_object_object_add(r, _apis_, x);
- get_apis(x, v);
- }
-
- afb_req_success(req, json_object_get(r), NULL);
- json_object_put(r);
+ struct json_object *r;
+ struct json_object *apis = NULL;
+ struct json_object *verbosity = NULL;
+
+ wrap_json_unpack(afb_req_json(req), "{s?:o,s?:o}", _verbosity_, &verbosity, _apis_, &apis);
+ if (verbosity)
+ verbosity = get_verbosity(verbosity);
+ if (apis)
+ apis = get_apis(apis);
+
+ wrap_json_pack(&r, "{s:o*,s:o*}", _verbosity_, verbosity, _apis_, apis);
+ afb_req_success(req, r, NULL);