changed member/element addition to be more convenient in most situations

This commit is contained in:
rexy712
2018-11-30 13:49:51 -08:00
parent f1d8dbde97
commit 036c732ee8
2 changed files with 13 additions and 13 deletions

View File

@@ -108,9 +108,9 @@ enum JSON_type rjp_get_value_type(struct JSON_value* j);
struct JSON_value* rjp_init_json(void);
//add a member to a json object
struct JSON_value* rjp_add_member(struct JSON_object* dest, int alloc_key, char* key, size_t keylen, struct JSON_value value);
struct JSON_value* rjp_add_member(struct JSON_value* dest, int alloc_key, char* key, size_t keylen, struct JSON_value value);
//add an element to a json array
struct JSON_value* rjp_add_element(struct JSON_array* dest, struct JSON_value value);
struct JSON_value* rjp_add_element(struct JSON_value* dest, struct JSON_value value);
struct JSON_value rjp_integer(long i);
struct JSON_value rjp_boolean(char b);

View File

@@ -10,22 +10,22 @@ struct JSON_value* rjp_init_json(void){
ret->type = json_object;
return ret;
}
struct JSON_value* rjp_add_member(struct JSON_object* dest, int alloc_key, char* key, size_t keylen, struct JSON_value value){
struct JSON_value* rjp_add_member(struct JSON_value* dest, int alloc_key, char* key, size_t keylen, struct JSON_value value){
if(!keylen && alloc_key)
keylen = strlen(key);
if(alloc_key)
_rjp__add_member(dest, key, keylen);
_rjp__add_member(&dest->object, key, keylen);
else
_rjp__add_member_no_alloc(dest, key, keylen);
dest->last->value = value;
dest->last->value.parent = (struct JSON_value*)dest;
return &dest->last->value;
_rjp__add_member_no_alloc(&dest->object, key, keylen);
dest->object.last->value = value;
dest->object.last->value.parent = dest;
return &dest->object.last->value;
}
struct JSON_value* rjp_add_element(struct JSON_array* dest, struct JSON_value value){
_rjp__add_element(dest);
dest->last->value = value;
dest->last->value.parent = (struct JSON_value*)dest;
return &dest->last->value;
struct JSON_value* rjp_add_element(struct JSON_value* dest, struct JSON_value value){
_rjp__add_element(&dest->array);
dest->array.last->value = value;
dest->array.last->value.parent = dest;
return &dest->array.last->value;
}
struct JSON_value rjp_integer(long i){
return (struct JSON_value){.integer = i, .type = json_integer};