diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2012-11-05 00:39:01 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2012-11-05 00:39:01 +0100 |
commit | c08d2016c16d1748c4c527c8055f90f5a7669004 (patch) | |
tree | 6617e04b24ca3f80a58bb97c37723077f80a2eaf /lib/json_util.c | |
parent | 3b4a22a8ca8a88122fa5fbf51218a5e6e65a90c8 (diff) |
Add json_util.c with helper functions. Keeping them in a separate file to
avoid making *any* changes to the third-party json.c.
Diffstat (limited to 'lib/json_util.c')
-rw-r--r-- | lib/json_util.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/json_util.c b/lib/json_util.c new file mode 100644 index 00000000..67cde749 --- /dev/null +++ b/lib/json_util.c @@ -0,0 +1,51 @@ +/***************************************************************************\ +* * +* BitlBee - An IRC to IM gateway * +* Helper functions for json.c * +* * +* Copyright 2012 Wilmer van der Gaast <wilmer@gaast.net> * +* * +* This library is free software; you can redistribute it and/or * +* modify it under the terms of the GNU Lesser General Public * +* License as published by the Free Software Foundation, version * +* 2.1. * +* * +* This library is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * +* Lesser General Public License for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this library; if not, write to the Free Software Foundation, * +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * +* * +****************************************************************************/ + +#include <stdlib.h> +#include <string.h> + +#include "json_util.h" + +json_value *json_o_get( json_value *obj, json_char *name ) +{ + int i; + + if( obj->type != json_object ) + return NULL; + + for( i = 0; i < obj->u.object.length; ++ i) + if( strcmp( obj->u.object.values[i].name, name ) == 0 ) + return obj->u.object.values[i].value; + + return NULL; +} + +const char *json_o_str( json_value *obj, json_char *name ) +{ + json_value *ret = json_o_get( obj, name ); + + if( ret ) + return ret->u.string.ptr; + else + return NULL; +} |