ISerializer& JsonOutputStreamSerializer::operator()(int64_t& value, const std::string& name) { JsonValue* val = chain.back(); JsonValue v; v = static_cast<int64_t>(value); if (val->isArray()) { val->pushBack(v); } else { val->insert(name, v); } return *this; }
ISerializer& JsonOutputStreamSerializer::beginObject(const std::string& name) { if (chain.size() == 0) { chain.push_back(&root); return *this; } JsonValue* parent = chain.back(); JsonValue obj(JsonValue::OBJECT); if (parent->isObject()) { JsonValue& res = parent->insert(name, obj); chain.push_back(&res); } else { JsonValue& res = parent->pushBack(obj); chain.push_back(&res); } return *this; }