Lines Matching full:json
35 // A JSON value, which can be any one of null, boolean, number, string,
37 class Json {
39 // The JSON type.
50 using Object = std::map<std::string, Json>;
51 using Array = std::vector<Json>;
54 static Json FromBool(bool b) { in FromBool()
55 Json json; in FromBool() local
56 json.value_ = b; in FromBool()
57 return json; in FromBool()
61 static Json FromNumber(const std::string& str) { in FromNumber()
62 Json json; in FromNumber() local
63 json.value_ = NumberValue{str}; in FromNumber()
64 return json; in FromNumber()
66 static Json FromNumber(const char* str) { in FromNumber()
67 Json json; in FromNumber() local
68 json.value_ = NumberValue{std::string(str)}; in FromNumber()
69 return json; in FromNumber()
71 static Json FromNumber(std::string&& str) { in FromNumber()
72 Json json; in FromNumber() local
73 json.value_ = NumberValue{std::move(str)}; in FromNumber()
74 return json; in FromNumber()
76 static Json FromNumber(int32_t value) { in FromNumber()
77 Json json; in FromNumber() local
78 json.value_ = NumberValue{absl::StrCat(value)}; in FromNumber()
79 return json; in FromNumber()
81 static Json FromNumber(uint32_t value) { in FromNumber()
82 Json json; in FromNumber() local
83 json.value_ = NumberValue{absl::StrCat(value)}; in FromNumber()
84 return json; in FromNumber()
86 static Json FromNumber(int64_t value) { in FromNumber()
87 Json json; in FromNumber() local
88 json.value_ = NumberValue{absl::StrCat(value)}; in FromNumber()
89 return json; in FromNumber()
91 static Json FromNumber(uint64_t value) { in FromNumber()
92 Json json; in FromNumber() local
93 json.value_ = NumberValue{absl::StrCat(value)}; in FromNumber()
94 return json; in FromNumber()
96 static Json FromNumber(double value) { in FromNumber()
97 Json json; in FromNumber() local
98 json.value_ = NumberValue{absl::StrCat(value)}; in FromNumber()
99 return json; in FromNumber()
103 static Json FromString(const std::string& str) { in FromString()
104 Json json; in FromString() local
105 json.value_ = str; in FromString()
106 return json; in FromString()
108 static Json FromString(const char* str) { in FromString()
109 Json json; in FromString() local
110 json.value_ = std::string(str); in FromString()
111 return json; in FromString()
113 static Json FromString(std::string&& str) { in FromString()
114 Json json; in FromString() local
115 json.value_ = std::move(str); in FromString()
116 return json; in FromString()
120 static Json FromObject(const Object& object) { in FromObject()
121 Json json; in FromObject() local
122 json.value_ = object; in FromObject()
123 return json; in FromObject()
125 static Json FromObject(Object&& object) { in FromObject()
126 Json json; in FromObject() local
127 json.value_ = std::move(object); in FromObject()
128 return json; in FromObject()
132 static Json FromArray(const Array& array) { in FromArray()
133 Json json; in FromArray() local
134 json.value_ = array; in FromArray()
135 return json; in FromArray()
137 static Json FromArray(Array&& array) { in FromArray()
138 Json json; in FromArray() local
139 json.value_ = std::move(array); in FromArray()
140 return json; in FromArray()
143 Json() = default;
146 Json(const Json& other) = default;
147 Json& operator=(const Json& other) = default;
150 Json(Json&& other) noexcept : value_(std::move(other.value_)) { in Json() function
153 Json& operator=(Json&& other) noexcept {
159 // Returns the JSON type.
162 Json::Type operator()(const absl::monostate&) { return Type::kNull; } in type()
163 Json::Type operator()(bool) { return Type::kBoolean; } in type()
164 Json::Type operator()(const NumberValue&) { return Type::kNumber; } in type()
165 Json::Type operator()(const std::string&) { return Type::kString; } in type()
166 Json::Type operator()(const Object&) { return Type::kObject; } in type()
167 Json::Type operator()(const Array&) { return Type::kArray; } in type()
192 bool operator==(const Json& other) const { return value_ == other.value_; }
193 bool operator!=(const Json& other) const { return !(*this == other); }
210 explicit Json(Value value) : value_(std::move(value)) {} in Json() function