index.txt
JSON(2) System Calls Manual JSON(2) NAME jsonparse, jsonfree, jsonbyname, jsonstr - JSON parser SYNOPSIS #include <u.h> #include <libc.h> #include <json.h> enum { JSONNull, JSONBool, JSONNumber, JSONString, JSONArray, JSONObject, }; typedef struct JSONEl JSONEl; struct JSONEl { char *name; JSON *val; JSONEl *next; }; typedef struct JSON JSON; struct JSON { int t; union { double n; char *s; JSONEl *first; }; }; JSON* jsonparse(char *); void jsonfree(JSON *); JSON* jsonbyname(JSON *, char *); char* jsonstr(JSON *); DESCRIPTION The JSON structure represents a variant json value. The variant type is stored in the t member of the structure. String values use s, booleans and numbers use the n members in the structure. Arrays and objects (dictionaries) are represented by a singly-linked list of JSONEl strucā tures referred to from the first pointer in the JSON structure. Each JSONEl has a val pointer to the associated value and a next pointer to the next element in the array or object. Dictionary objects have the name member set to the key of the association. A json object is parsed by calling jsonparse with a UTF-8 string of the json encoded data. On success, a non-nil pointer to a newly allocated JSON structure is returned. To free the parsed objects, jsonfree has to be called. The jsonbyname function returns the associated value of a dictionary item. The function jsonstr returns the string value of a json object or nil for any other object type. SOURCE /sys/src/libjson DIAGNOSTICS The functions jsonparse, jsonbyname and jsonstr return nil on error and set an error string (see errstr(2)). JSON(2)