GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
KJSON_PUTSTRING(3) FreeBSD Library Functions Manual KJSON_PUTSTRING(3)

kjson_putstring, kjson_putstringp, kjson_string_puts
put string content for kcgijson

library “libkcgijson”

#include <sys/types.h>
#include <stdarg.h>
#include <stdint.h>
#include <kcgi.h>
#include <kcgijson.h>

enum kcgi_err
kjson_putstring(struct kjsonreq *req, const char *v);

enum kcgi_err
kjson_putstringp(struct kjsonreq *req, const char *name, const char *v);

enum kcgi_err
kjson_string_puts(struct kjsonreq *req, const char *v);

Write a string v, to a context req initialised with khtml_open(3). If v is NULL, do nothing and return KCGI_OK.

The kjson_putstring() form is for array scopes, kjson_putstringp() for objects, and kjson_stri_puts() for open strings.

All values are JSON escaped so that content cannot prematurely end its context.

Passing a NULL value to name for kjson_putstringp(), is equivalent to calling kjson_putstring().

Returns an enum kcgi_err indicating the error state.
Success (not an error).
Internal memory allocation failure.
The output connection has been terminated. For FastCGI connections, the current connection should be released with khttp_free(3) and parse loop reentered.
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.
Internal system error writing to the output stream.
The incorrect form was used for the current scope, for example, an array-type write within 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_putstringp(&req, "bar", "shbar");
kjson_arrayp_open(&req, "baz");
kjson_putstring(&req, "xyzzy"));
kjson_close(&req);

kcgijson(3)

Written by Kristaps Dzonsons <kristaps@bsd.lv>.
June 12, 2022 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.