fix map object

This commit is contained in:
Xuan Son Nguyen 2025-12-27 20:38:06 +01:00
parent d8ef00e610
commit 5a041e65b8
1 changed files with 5 additions and 9 deletions

View File

@ -121,7 +121,7 @@ struct value_array_t : public value_t {
};
using value_array = std::unique_ptr<value_array_t>;
/*struct value_object_t : public value_t {
struct value_object_t : public value_t {
value_object_t() {
val_obj = std::make_shared<std::map<std::string, value>>();
}
@ -130,7 +130,10 @@ using value_array = std::unique_ptr<value_array_t>;
val_obj = v->val_obj;
}
value_object_t(const std::map<std::string, value> & obj) {
val_obj = std::make_shared<std::map<std::string, value>>(obj);
val_obj = std::make_shared<std::map<std::string, value>>();
for (const auto & pair : obj) {
(*val_obj)[pair.first] = pair.second->clone();
}
}
virtual std::string type() const override { return "Object"; }
virtual const std::map<std::string, value> & as_object() const override { return *val_obj; }
@ -140,13 +143,6 @@ using value_array = std::unique_ptr<value_array_t>;
return tmp;
}
};
using value_object = std::unique_ptr<value_object_t>;*/
struct value_object_t : public value_t {
virtual std::string type() const override { return "TEST"; }
virtual bool is_null() const override { return true; }
virtual value clone() const override { return std::make_unique<value_object_t>(*this); }
};
using value_object = std::unique_ptr<value_object_t>;
struct value_null_t : public value_t {