diff options
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 26b95ef996d..2e191d8d48e 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; |
