aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/yson/node/node_io.cpp
diff options
context:
space:
mode:
authorionagamed <ionagamed@yandex-team.com>2023-12-06 11:15:42 +0300
committerionagamed <ionagamed@yandex-team.com>2023-12-06 11:59:15 +0300
commitbbdd76a9666c19dd2eb27a842909358e8b541a67 (patch)
tree4dd28e53f070d9f33c58df8631357e0b7125ce54 /library/cpp/yson/node/node_io.cpp
parent19dfab524551ce06a74e89eda1a7dd2c95663e9c (diff)
downloadydb-bbdd76a9666c19dd2eb27a842909358e8b541a67.tar.gz
library/yson: Add NodeFromJsonStringIterative
AI для
Diffstat (limited to 'library/cpp/yson/node/node_io.cpp')
-rw-r--r--library/cpp/yson/node/node_io.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/library/cpp/yson/node/node_io.cpp b/library/cpp/yson/node/node_io.cpp
index 26b95ef996..2e191d8d48 100644
--- a/library/cpp/yson/node/node_io.cpp
+++ b/library/cpp/yson/node/node_io.cpp
@@ -151,6 +151,22 @@ TNode NodeFromJsonString(const TStringBuf input)
return result;
}
+TNode NodeFromJsonStringIterative(const TStringBuf input, ui64 maxDepth)
+{
+ TMemoryInput stream(input);
+
+ TNode result;
+
+ TNodeBuilder builder(&result);
+ TYson2JsonCallbacksAdapter callbacks(&builder, /*throwException*/ true, maxDepth);
+ NJson::TJsonReaderConfig config;
+ config.DontValidateUtf8 = true;
+ config.UseIterativeParser = true;
+ config.MaxDepth = maxDepth;
+ NJson::ReadJson(&stream, &config, &callbacks);
+ return result;
+}
+
TNode NodeFromJsonValue(const NJson::TJsonValue& input)
{
TNode result;