kjson_obj_close
—
open object scope for kcgijson
Returns an enum kcgi_err indicating the error state.
KCGI_OK
- Success (not an error).
KCGI_ENOMEM
- Internal memory allocation failure.
KCGI_HUP
- The output connection has been terminated. For FastCGI connections, the
current connection should be released with
khttp_free(3)
and parse loop reentered.
KCGI_FORM
- The connection is still expecting headers with
khttp_head(3).
Indicates that
khttp_body(3)
did not return with success or was not invoked. For FastCGI connections,
the current connection should be released with
khttp_free(3)
and parse loop reentered.
KCGI_SYSTEM
- Internal system error writing to the output stream.
KCGI_WRITER
- The current scope is not an object.
The following outputs a simple JSON document. It assumes r
is a struct kreq pointer. For brevity, it does not do
any error checking.
khttp_head(r, kresps[KRESP_STATUS],
"%s", khttps[KHTTP_200]);
khttp_head(r, kresps[KRESP_CONTENT_TYPE],
"%s", kmimetypes[KMIME_APP_JSON]);
khttp_body(r);
kjson_open(&req, r);
kjson_obj_open(&req);
kjson_objp_open(&req, "foo");
kjson_putstringp(&req, "data", "shbar");
kjson_obj_close(&req); /* foo */
kjson_objp_open(&req, "bar");
kjson_putstringp(&req, "data", "xyzzy");
kjson_obj_close(&req); /* bar */
kjson_close(&req);