X-Git-Url: https://develop.uap-core.de/gitweb/uwplayer.git/blobdiff_plain/5dddf6a0fd936f4f3349d0174c1261d8fb99523c..6f0f043866279eb17db4e95964c9e9817923c0d8:/application/json.c diff --git a/application/json.c b/application/json.c index 6b126d4..719a570 100644 --- a/application/json.c +++ b/application/json.c @@ -842,3 +842,63 @@ int json_read_value(JSONParser *p, JSONValue **value) { return 1; } +JSONValue* json_obj_get(JSONObject *obj, const char *name) { + for(size_t i=0;isize;i++) { + if(!strcmp(obj->values[i].name, name)) { + return obj->values[i].value; + } + } + return NULL; +} + +JSONValue* json_array_get(JSONArray *array, size_t i) { + if(i >= array->size) return NULL; + return array->array[i]; +} + +void json_value_free(JSONValue *value) { + switch(value->type) { + case JSON_OBJECT: { + JSONObject obj = value->value.object; + for(size_t i=0;ivalue.array; + for(size_t i=0;ivalue.string.string); + break; + } + default: { + break; + } + } + free(value); +} + +int json_strcmp(JSONValue *jsstr, const char *str) { + return json_strncmp(jsstr, str, strlen(str)); +} + +int json_strncmp(JSONValue *jsstr, const char *str, size_t slen) { + if(jsstr->type != JSON_STRING) { + return -1; + } + size_t jsstrlen = jsstr->value.string.length; + + if(jsstrlen != slen) { + return jsstrlen > slen ? 1 : -1; + } + + return memcmp(jsstr->value.string.string, str, slen); +}