a10db7a1565e78a8eeece4272103115418aa5693 angie Wed Jan 7 12:00:16 2015 -0800 Extended jsonWriteObjectStart to support an optional preceding tag;added jsonWriteStringf, jsonWriteBoolean, jsonWriteValueLabelList, and jsonWriteSlNameList. To be used by cartJson and hgAi. diff --git src/inc/jsonWrite.h src/inc/jsonWrite.h index 2a888ec..a0873d1 100644 --- src/inc/jsonWrite.h +++ src/inc/jsonWrite.h @@ -13,44 +13,56 @@ }; struct jsonWrite *jsonWriteNew(); /* Return new empty jsonWrite struct. */ void jsonWriteFree(struct jsonWrite **pJw); /* Free up a jsonWrite object. */ void jsonWriteTag(struct jsonWrite *jw, char *var); /* Print out quoted tag followed by colon. Print out preceding comma if need be. */ void jsonWriteEndLine(struct jsonWrite *jw); /* Write comma if in middle, and then newline regardless. */ void jsonWriteString(struct jsonWrite *jw, char *var, char *string); -/* Print out "var": "val". If var is NULL then just print out "val" */ +/* Print out "var": "val". If var is NULL, print val only. If string is NULL, "var": null . */ void jsonWriteDateFromUnix(struct jsonWrite *jw, char *var, long long unixTimeVal); /* Add "var": YYYY-MM-DDT-HH:MM:SSZ given a Unix time stamp. Var may be NULL. */ void jsonWriteNumber(struct jsonWrite *jw, char *var, long long val); /* print out "var": val as number. Var may be NULL. */ void jsonWriteLink(struct jsonWrite *jw, char *var, char *objRoot, char *name); /* Print out the jsony type link to another object. objRoot will start and end with a '/' * and may have additional slashes in this usage. Var may be NULL. */ void jsonWriteLinkNum(struct jsonWrite *jw, char *var, char *objRoot, long long id); /* Print out the jsony type link to another object with a numerical id. objRoot will start * and end with a '/' and may have additional slashes in this usage. Var may be NULL */ void jsonWriteListStart(struct jsonWrite *jw, char *var); /* Start an array in JSON. Var may be NULL */ void jsonWriteListEnd(struct jsonWrite *jw); /* End an array in JSON */ -void jsonWriteObjectStart(struct jsonWrite *dy); -/* Print start of object */ +void jsonWriteObjectStart(struct jsonWrite *jw, char *var); +/* Print start of object, preceded by tag if var is non-NULL. */ void jsonWriteObjectEnd(struct jsonWrite *jw); /* End object in JSON */ +void jsonWriteStringf(struct jsonWrite *jw, char *var, char *format, ...); +/* Write "var": "val" where val is jsonStringEscape'd formatted string. */ + +void jsonWriteBoolean(struct jsonWrite *jw, char *var, boolean val); +/* Write out "var": true or "var": false depending on val (no quotes around true/false). */ + +void jsonWriteValueLabelList(struct jsonWrite *jw, char *var, struct slPair *pairList); +/* Print out a named list of {"value": "<pair->name>", "label": "<pair->val>"} objects. */ + +void jsonWriteSlNameList(struct jsonWrite *jw, char *var, struct slName *slnList); +/* Print out a named list of strings from slnList. */ + #endif /* JSONWRITE_H */