void CJSONWriter::Val(const CFSVar &Var) { switch (Var.GetType()) { case CFSVar::VAR_EMPTY: NullVal(); break; case CFSVar::VAR_INT: IntVal(Var.GetInt()); break; case CFSVar::VAR_FLOAT: FloatVal(Var.GetFloat()); break; case CFSVar::VAR_BOOL: BoolVal(Var.GetBool()); break; case CFSVar::VAR_STRING: StringVal(Var.GetAString()); break; case CFSVar::VAR_MAP: ObjectStart(); for (INTPTR ip=0; ip<Var.GetSize(); ip++) { CFSAString szKey=Var.GetKey(ip); Key(szKey); Val(Var[szKey]); } ObjectEnd(); break; case CFSVar::VAR_ARRAY: ArrayStart(); for (INTPTR ip=0; ip<Var.GetSize(); ip++) { Val(Var[ip]); } ArrayEnd(); break; } }
void SubKeys(const CFSAString szExcept, const CFSVar &Data) { for (INTPTR ip=0; ip<Data.GetSize(); ip++) { CFSAString szKey=Data.GetKey(ip); if (szKey==szExcept) continue; m_Writer.Key(szKey); m_Writer.Val(Data[szKey]); } }