示例#1
0
const char *json_o_str(const json_value *obj, const json_char *name)
{
	json_value *ret = json_o_get(obj, name);

	if (ret && ret->type == json_string) {
		return ret->u.string.ptr;
	} else {
		return NULL;
	}
}
示例#2
0
char *json_o_strdup(const json_value *obj, const json_char *name)
{
	json_value *ret = json_o_get(obj, name);

	if (ret && ret->type == json_string && ret->u.string.ptr) {
		return g_memdup(ret->u.string.ptr, ret->u.string.length + 1);
	} else {
		return NULL;
	}
}
示例#3
0
/**
 * Gets a #json_value by name from a parent #json_value, and checks
 * for its existence and type.
 *
 * @param json The #json_value.
 * @param name The name.
 * @param type The #json_type.
 * @param val  The return location for the value.
 *
 * @return TRUE if the value was found, or FALSE on error.
 **/
gboolean steam_json_val_chk(const json_value *json, const gchar *name,
                            json_type type, json_value **val)
{
    g_return_val_if_fail(json != NULL, FALSE);
    g_return_val_if_fail(name != NULL, FALSE);
    g_return_val_if_fail(val  != NULL, FALSE);

    *val = json_o_get(json, name);

    if ((*val == NULL) || ((*val)->type != type)) {
        *val = NULL;
        return FALSE;
    }

    return TRUE;
}