diff options
author | ionagamed <ionagamed@yandex-team.com> | 2023-12-06 11:15:42 +0300 |
---|---|---|
committer | ionagamed <ionagamed@yandex-team.com> | 2023-12-06 11:59:15 +0300 |
commit | bbdd76a9666c19dd2eb27a842909358e8b541a67 (patch) | |
tree | 4dd28e53f070d9f33c58df8631357e0b7125ce54 /library/cpp/yson/node/node_io.cpp | |
parent | 19dfab524551ce06a74e89eda1a7dd2c95663e9c (diff) | |
download | ydb-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.cpp | 16 |
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; |