6#include <userver/formats/json/value.hpp>
7#include <userver/formats/parse/to.hpp>
8#include <userver/formats/serialize/to.hpp>
10USERVER_NAMESPACE_BEGIN
12namespace formats::json {
20class Object
final :
private Value {
34 : Value(std::move(value))
41 explicit Object(ValueBuilder&& builder);
43 Object(
const Object&) =
default;
44 Object(Object&&)
noexcept =
default;
46 Object& operator=(
const Object&) & =
default;
47 Object& operator=(Object&&)
noexcept =
default;
50 const Value&
GetValue()
const& {
return *
this; }
56 using Value::operator[];
59 Value operator[](std::size_t index)
const =
delete;
75 using Value::ConvertTo;
78 using Value::HasMember;
90inline Object Parse(
const Value& value, parse::To<Object>) {
return Object
{value
}; }
92inline Value Serialize(
const Object& object, formats::serialize::To<Value>) {
return Value{object
.GetValue()}; }
94inline Value Serialize(Object&& object, formats::serialize::To<Value>) {