aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/json
diff options
context:
space:
mode:
authorilnurkh <ilnurkh@yandex-team.com>2023-07-27 13:41:56 +0300
committerilnurkh <ilnurkh@yandex-team.com>2023-07-27 13:41:56 +0300
commit1761cf17008788a7ec126e953ffe46c41721d168 (patch)
treedecb73843d5195cce15a243badf6614f1bf04909 /library/cpp/json
parent114da2ea902184524cac007509fbe899d8154b05 (diff)
downloadydb-1761cf17008788a7ec126e953ffe46c41721d168.tar.gz
add TryNodeFromJsonString: ability to parse object and check errors without try-catch
Diffstat (limited to 'library/cpp/json')
-rw-r--r--library/cpp/json/common/defs.cpp1
-rw-r--r--library/cpp/json/common/defs.h4
2 files changed, 5 insertions, 0 deletions
diff --git a/library/cpp/json/common/defs.cpp b/library/cpp/json/common/defs.cpp
index da86da82e42..fbc86c0f181 100644
--- a/library/cpp/json/common/defs.cpp
+++ b/library/cpp/json/common/defs.cpp
@@ -62,6 +62,7 @@ bool TJsonCallbacks::OnEnd() {
}
void TJsonCallbacks::OnError(size_t off, TStringBuf reason) {
+ HaveErrors = true;
if (ThrowException) {
ythrow TJsonException() << "JSON error at offset " << off << " (" << reason << ")";
}
diff --git a/library/cpp/json/common/defs.h b/library/cpp/json/common/defs.h
index d3c8761bcc0..ae3985508be 100644
--- a/library/cpp/json/common/defs.h
+++ b/library/cpp/json/common/defs.h
@@ -32,7 +32,11 @@ namespace NJson {
virtual bool OnEnd();
virtual void OnError(size_t off, TStringBuf reason);
+ bool GetHaveErrors() const {
+ return HaveErrors;
+ }
protected:
bool ThrowException;
+ bool HaveErrors = false;
};
}