string ValueJsonStringVisitor::visit(const cocos2d::Value &v) { switch (v.getType()) { case cocos2d::Value::Type::NONE: case cocos2d::Value::Type::BYTE: case cocos2d::Value::Type::INTEGER: case cocos2d::Value::Type::FLOAT: case cocos2d::Value::Type::DOUBLE: case cocos2d::Value::Type::BOOLEAN: return v.asString(); break; case cocos2d::Value::Type::STRING: return string("\"") + v.asString() + string("\""); break; case cocos2d::Value::Type::VECTOR: return visit(v.asValueVector()); break; case cocos2d::Value::Type::MAP: return visitMap<ValueMap>(v.asValueMap()); break; case cocos2d::Value::Type::INT_KEY_MAP: return visitMap<ValueMapIntKey>(v.asIntKeyMap()); break; default: CCASSERT(false, "Invalid type!"); break; } }