void JSONSerializer::RenderValue( const QVariant &vValue ) { // ----------------------------------------------------------------------- // See if this value is actually a child object // ----------------------------------------------------------------------- if ( vValue.canConvert< QObject* >()) { const QObject *pObject = vValue.value< QObject* >(); bool bSavedCommaNeeded = m_bCommaNeeded; m_bCommaNeeded = false; m_Stream << "{"; SerializeObjectProperties( pObject ); m_Stream << "}"; m_bCommaNeeded = bSavedCommaNeeded; return; } // ----------------------------------------------------------------------- // Handle QVariant special cases... // ----------------------------------------------------------------------- switch( vValue.type() ) { case QVariant::List: RenderList ( vValue.toList() ); break; case QVariant::StringList: RenderStringList( vValue.toStringList() ); break; case QVariant::Map: RenderMap ( vValue.toMap() ); break; case QVariant::DateTime: { m_Stream << "\"" << Encode( MythDate::toString( vValue.toDateTime(), MythDate::ISODate ) ) << "\""; break; } default: { m_Stream << "\"" << Encode( vValue.toString() ) << "\""; break; } } }
void XmlPListSerializer::RenderValue(const QString &sName, const QVariant &vValue, bool needKey) { if ( vValue.canConvert<QObject*>()) { const QObject *pObject = vValue.value<QObject*>(); SerializePListObjectProperties(sName, pObject, needKey); return; } switch(vValue.type()) { case QVariant::List: { RenderList(sName, vValue.toList()); break; } case QVariant::StringList: { RenderStringList(sName, vValue.toStringList()); break; } case QVariant::Map: { RenderMap(sName, vValue.toMap()); break; } case QVariant::DateTime: { if (vValue.toDateTime().isValid()) { if (needKey) m_pXmlWriter->writeTextElement("key", sName); m_pXmlWriter->writeTextElement("date", vValue.toDateTime() .toUTC().toString("yyyy-MM-ddThh:mm:ssZ")); } break; } case QVariant::ByteArray: { if (!vValue.toByteArray().isNull()) { if (needKey) m_pXmlWriter->writeTextElement("key", sName); m_pXmlWriter->writeTextElement("data", vValue.toByteArray().toBase64().data()); } break; } case QVariant::Bool: { if (needKey) m_pXmlWriter->writeTextElement("key", sName); m_pXmlWriter->writeEmptyElement(vValue.toBool() ? "true" : "false"); break; } case QVariant::UInt: case QVariant::ULongLong: { if (needKey) m_pXmlWriter->writeTextElement("key", sName); m_pXmlWriter->writeTextElement("integer", QString::number(vValue.toULongLong())); break; } case QVariant::Int: case QVariant::LongLong: case QVariant::Double: { if (needKey) m_pXmlWriter->writeTextElement("key", sName); m_pXmlWriter->writeTextElement("real", QString("%1").arg(vValue.toDouble(), 0, 'f', 6)); break; } // anything else will be unrecognised, so wrap in a string case QVariant::String: default: { if (needKey) m_pXmlWriter->writeTextElement("key", sName); m_pXmlWriter->writeTextElement("string", vValue.toString()); break; } } }