2 * ZZJSON - Copyright (C) 2008 by Ivo van Poorten
3 * License: GNU Lesser General Public License version 2.1
10 ZZJSON
*zzjson_object_find_label(ZZJSON
*zzjson
, char *label
) {
11 if (zzjson
->type
!= ZZJSON_OBJECT
) return NULL
;
14 char *string
= zzjson
->value
.object
.label
;
16 if (zzjson
->type
!= ZZJSON_OBJECT
) return NULL
;
17 if (!string
) return NULL
;
19 if (!strcmp(string
, label
))
20 return zzjson
->value
.object
.val
;
21 zzjson
= zzjson
->next
;
26 ZZJSON
*zzjson_object_find_labels(ZZJSON
*zzjson
, ...) {
31 lbl
= va_arg(ap
, char *);
33 zzjson
= zzjson_object_find_label(zzjson
, lbl
);
35 lbl
= va_arg(ap
, char *);
42 unsigned int zzjson_object_count(ZZJSON
*zzjson
) {
43 unsigned int count
= 1;
45 if (zzjson
->type
!= ZZJSON_OBJECT
) return 0;
46 if (!zzjson
->value
.object
.label
) return 0; /* empty { } */
48 while ((zzjson
= zzjson
->next
)) count
++;
53 unsigned int zzjson_array_count(ZZJSON
*zzjson
) {
54 unsigned int count
= 1;
56 if (zzjson
->type
!= ZZJSON_ARRAY
) return 0;
57 if (!zzjson
->value
.array
.val
) return 0; /* empty [ ] */
59 while ((zzjson
= zzjson
->next
)) count
++;