|
|
| version 1.1.2.10, 2017/11/29 08:32:46 | version 1.2.2.1, 2017/12/03 20:01:42 |
|---|---|
| Line 563 json_token2array(const char *jstr, jtok_t * __restrict | Line 563 json_token2array(const char *jstr, jtok_t * __restrict |
| } | } |
| } else { | } else { |
| elwix_SetErr(J_ERR_PARAM, "%s", jerrstr[J_ERR_PARAM]); | elwix_SetErr(J_ERR_PARAM, "%s", jerrstr[J_ERR_PARAM]); |
| ait_freeVars(&arr); | |
| return NULL; | return NULL; |
| } | } |
| Line 921 json_add_pair(char * __restrict jstr, int jlen, int ws | Line 922 json_add_pair(char * __restrict jstr, int jlen, int ws |
| jstr[eos] = 0; | jstr[eos] = 0; |
| return -1; | return -1; |
| } | } |
| if ((len = json_add_string(jstr, jlen, 0, key)) == -1) { | if ((len = json_add_string(jstr, jlen, 0, val)) == -1) { |
| jstr[eos] = 0; | jstr[eos] = 0; |
| return -1; | return -1; |
| } | } |
| Line 981 json_add_array(char * __restrict jstr, int jlen, int w | Line 982 json_add_array(char * __restrict jstr, int jlen, int w |
| } | } |
| return len; | return len; |
| } | |
| /* | |
| * json_dump_yaml() - Dump parsed JSON string to YAML format | |
| * | |
| * @f = Output handler | |
| * @jstr = JSON string | |
| * @toks = JSON tokens | |
| * @toksnum = Number of tokens | |
| * @indent = Start indent spaces | |
| * return: 0 done and 1 added one more item | |
| */ | |
| int | |
| json_dump_yaml(FILE *f, const char *jstr, jtok_t *toks, int toksnum, int indent) | |
| { | |
| register int i, j, k; | |
| if (!toksnum) | |
| return 0; | |
| if (toks->tok_type == J_VALUE) { | |
| fprintf(f, "%.*s", (int) json_toklen(toks), json_tokstr(jstr, toks)); | |
| return 1; | |
| } else if (toks->tok_type == J_STRING) { | |
| fprintf(f, "%.*s", (int) json_toklen(toks), json_tokstr(jstr, toks)); | |
| return 1; | |
| } else if (toks->tok_type == J_OBJECT) { | |
| fprintf(f, "\n"); | |
| for (j = i = 0; i < json_toksize(toks); i++) { | |
| for (k = 0; k < indent; k++) | |
| fprintf(f, " "); | |
| j += json_dump_yaml(f, jstr, toks + j + 1, toksnum - j, indent + 1); | |
| fprintf(f, ": "); | |
| j += json_dump_yaml(f, jstr, toks + j + 1, toksnum - j, indent + 1); | |
| fprintf(f, "\n"); | |
| } | |
| return j + 1; | |
| } else if (toks->tok_type == J_ARRAY) { | |
| fprintf(f, "\n"); | |
| for (j = i = 0; i < json_toksize(toks); i++) { | |
| for (k = 0; k < indent - 1; k++) | |
| fprintf(f, " "); | |
| fprintf(f, " - "); | |
| j += json_dump_yaml(f, jstr, toks + j + 1, toksnum - j, indent + 1); | |
| fprintf(f, "\n"); | |
| } | |
| return j + 1; | |
| } | |
| return 0; | |
| } | } |