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; }