X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyaz%2Fjson.h;h=de7803a6022c8fe34906a77d5f295891f3bf7611;hb=847dc126960b1bcc6ce8cef8a73e3606588770af;hp=e3a97625b4958366b1d58084fa67d31155a702d6;hpb=88d3bedf772316f87e1996f655ccf8d1e2589755;p=yaz-moved-to-github.git diff --git a/include/yaz/json.h b/include/yaz/json.h index e3a9762..de7803a 100644 --- a/include/yaz/json.h +++ b/include/yaz/json.h @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2010 Index Data. + * Copyright (C) 1995-2011 Index Data. * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -93,6 +93,15 @@ struct json_node *json_parser_parse(json_parser_t p, const char *json_str); YAZ_EXPORT const char *json_parser_get_errmsg(json_parser_t p); +/** \brief returns parser position + \param p JSON parser handle + \returns number of bytes read from parser + + This function should be called if json_parser_parse returns NULL . +*/ +YAZ_EXPORT +size_t json_parser_get_position(json_parser_t p); + /** \brief parses JSON string \param json_str JSON string \param errmsg pointer to error message string @@ -104,6 +113,19 @@ const char *json_parser_get_errmsg(json_parser_t p); YAZ_EXPORT struct json_node *json_parse(const char *json_str, const char **errmsg); +/** \brief parses JSON string + \param json_str JSON string + \param errmsg pointer to error message string + \param pos position of parser stop (probably error) + \returns JSON tree or NULL if parse error occurred. + + The resulting tree should be removed with a call to json_remove_node. + The errmsg may be NULL in which case the error message is not returned. +*/ +YAZ_EXPORT +struct json_node *json_parse2(const char *json_str, const char **errmsg, + size_t *pos); + /** \brief destroys JSON tree node and its children \param n JSON node */