nfx-json 1.5.2
Modern C++20 JSON library with schema validation and generation
Loading...
Searching...
No Matches
Document.h File Reference

JSON Document type with low-level and high-level APIs. More...

#include "Concepts.h"
#include <algorithm>
#include <compare>
#include <cstdint>
#include <memory>
#include <optional>
#include <span>
#include <stdexcept>
#include <string>
#include <string_view>
#include <variant>
#include <vector>
#include "detail/Document.inl"
Include dependency graph for Document.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  nfx::json::is_json_container< Object >
 Specialization of is_json_container for Object. More...
struct  nfx::json::is_json_container< Array >
 Specialization of is_json_container for Array. More...
class  nfx::json::Document
 Low-level JSON value storage type. More...
class  nfx::json::Document::ObjectIterator
 Object iterator wrapper that provides key() and value(). More...
class  nfx::json::Document::KeysView
 Range adapter for object keys. More...
class  nfx::json::Document::KeysView::iterator
 Key iterator. More...
class  nfx::json::Document::ValuesView
 Range adapter for object values. More...
class  nfx::json::Document::ValuesView::const_iterator
 Value iterator (const). More...
class  nfx::json::Document::ValuesView::iterator
 Value iterator (mutable). More...
class  nfx::json::Document::MutableValuesView
 Mutable values view. More...
class  nfx::json::Document::MutableValuesView::iterator
 Value iterator (mutable). More...
class  nfx::json::Document::PathView
 Path iterator for traversing all paths in a JSON document. More...
struct  nfx::json::Document::PathView::Entry
 Represents a single path entry in the document. More...
class  nfx::json::Document::PathView::iterator
 Forward iterator for path entries. More...

Typedefs

using nfx::json::Object = std::vector<std::pair<std::string, Document>>
 Ordered map for JSON objects (preserves insertion order).
using nfx::json::Array = std::vector<Document>
 Array for JSON arrays.

Enumerations

enum class  nfx::json::Type : uint8_t {
  Null ,
  Boolean ,
  Integer ,
  UnsignedInteger ,
  Double ,
  String ,
  Array ,
  Object
}
 JSON value types. More...

Detailed Description

JSON Document type with low-level and high-level APIs.

Definition in file Document.h.

Typedef Documentation

◆ Array

using nfx::json::Array = std::vector<Document>

Array for JSON arrays.

Definition at line 74 of file Document.h.

◆ Object

using nfx::json::Object = std::vector<std::pair<std::string, Document>>

Ordered map for JSON objects (preserves insertion order).

Definition at line 69 of file Document.h.

Enumeration Type Documentation

◆ Type

enum class nfx::json::Type : uint8_t
strong

JSON value types.

Definition at line 54 of file Document.h.