# nlohmann::basic_json_document::root ```cpp // (1) view_type root() const& noexcept; // (2) view_type root() const&& = delete; ``` 1. Returns a view of the root value of the document. 2. Deleted: the view of a temporary document would dangle. ## Return value A [`view_type`](index.md#member-types) (i.e. `#!cpp basic_json_view`) for the root value, or a discarded view if the document is [discarded](is_discarded.md). ## Exception safety No-throw guarantee: this function never throws exceptions. ## Complexity Constant. ## Notes **Lifetime.** A view refers into the document, so the document must outlive it. `root()` can therefore only be called on a document that has a name (an lvalue); calling it on a temporary does not compile: ```cpp auto v = json_document::parse(text).root(); // error: the document is destroyed at the end of the statement auto doc = json_document::parse(text); // OK: keep the document alive auto v = doc.root(); ``` `root()` is a cheap handle into the document's index, not a copy of anything; call it as often as needed. The returned view is valid under the same conditions as any other view of the document -- see [Object inspection](../basic_json_view/index.md) -- in particular, it is invalidated by the next [`read()`](read.md) or [`shrink_to_fit()`](shrink_to_fit.md) on this document. ## Examples ??? example ```cpp --8<-- "examples/basic_json_document__root.cpp" ``` Output: ```json --8<-- "examples/basic_json_document__root.output" ``` ## See also - [is_discarded](is_discarded.md) - return whether the last parse failed - [materialize](../basic_json_view/materialize.md) - build the `BasicJsonType` value of a subtree ## Version history - Added in version 3.13.0.