Lines Matching full:json
34 // A JSON value, which can be any one of null, boolean, number, string,
36 class Json {
38 // The JSON type.
49 using Object = std::map<std::string, Json>;
50 using Array = std::vector<Json>;
53 static Json FromBool(bool b) { in FromBool()
54 Json json; in FromBool() local
55 json.value_ = b; in FromBool()
56 return json; in FromBool()
60 static Json FromNumber(const std::string& str) { in FromNumber()
61 Json json; in FromNumber() local
62 json.value_ = NumberValue{str}; in FromNumber()
63 return json; in FromNumber()
65 static Json FromNumber(const char* str) { in FromNumber()
66 Json json; in FromNumber() local
67 json.value_ = NumberValue{std::string(str)}; in FromNumber()
68 return json; in FromNumber()
70 static Json FromNumber(std::string&& str) { in FromNumber()
71 Json json; in FromNumber() local
72 json.value_ = NumberValue{std::move(str)}; in FromNumber()
73 return json; in FromNumber()
75 static Json FromNumber(int32_t value) { in FromNumber()
76 Json json; in FromNumber() local
77 json.value_ = NumberValue{absl::StrCat(value)}; in FromNumber()
78 return json; in FromNumber()
80 static Json FromNumber(uint32_t value) { in FromNumber()
81 Json json; in FromNumber() local
82 json.value_ = NumberValue{absl::StrCat(value)}; in FromNumber()
83 return json; in FromNumber()
85 static Json FromNumber(int64_t value) { in FromNumber()
86 Json json; in FromNumber() local
87 json.value_ = NumberValue{absl::StrCat(value)}; in FromNumber()
88 return json; in FromNumber()
90 static Json FromNumber(uint64_t value) { in FromNumber()
91 Json json; in FromNumber() local
92 json.value_ = NumberValue{absl::StrCat(value)}; in FromNumber()
93 return json; in FromNumber()
95 static Json FromNumber(double value) { in FromNumber()
96 Json json; in FromNumber() local
97 json.value_ = NumberValue{absl::StrCat(value)}; in FromNumber()
98 return json; in FromNumber()
102 static Json FromString(const std::string& str) { in FromString()
103 Json json; in FromString() local
104 json.value_ = str; in FromString()
105 return json; in FromString()
107 static Json FromString(const char* str) { in FromString()
108 Json json; in FromString() local
109 json.value_ = std::string(str); in FromString()
110 return json; in FromString()
112 static Json FromString(std::string&& str) { in FromString()
113 Json json; in FromString() local
114 json.value_ = std::move(str); in FromString()
115 return json; in FromString()
119 static Json FromObject(const Object& object) { in FromObject()
120 Json json; in FromObject() local
121 json.value_ = object; in FromObject()
122 return json; in FromObject()
124 static Json FromObject(Object&& object) { in FromObject()
125 Json json; in FromObject() local
126 json.value_ = std::move(object); in FromObject()
127 return json; in FromObject()
131 static Json FromArray(const Array& array) { in FromArray()
132 Json json; in FromArray() local
133 json.value_ = array; in FromArray()
134 return json; in FromArray()
136 static Json FromArray(Array&& array) { in FromArray()
137 Json json; in FromArray() local
138 json.value_ = std::move(array); in FromArray()
139 return json; in FromArray()
142 Json() = default;
145 Json(const Json& other) = default;
146 Json& operator=(const Json& other) = default;
149 Json(Json&& other) noexcept : value_(std::move(other.value_)) { in Json() function
152 Json& operator=(Json&& other) noexcept {
158 // Returns the JSON type.
161 Json::Type operator()(const absl::monostate&) { return Type::kNull; } in type()
162 Json::Type operator()(bool) { return Type::kBoolean; } in type()
163 Json::Type operator()(const NumberValue&) { return Type::kNumber; } in type()
164 Json::Type operator()(const std::string&) { return Type::kString; } in type()
165 Json::Type operator()(const Object&) { return Type::kObject; } in type()
166 Json::Type operator()(const Array&) { return Type::kArray; } in type()
191 bool operator==(const Json& other) const { return value_ == other.value_; }
192 bool operator!=(const Json& other) const { return !(*this == other); }
209 explicit Json(Value value) : value_(std::move(value)) {} in Json() function