CStringA CDVBChannel::ToJSON() const { CStringA jsonChannel; jsonChannel.Format("{ \"index\" : %d, \"name\" : \"%s\" }", m_nPrefNumber, EscapeJSONString(UTF16To8(m_strName))); return jsonChannel; }
// // Handler // INT_32 FnJSONEscape::Handler(CDT * aArguments, const UINT_32 iArgNum, CDT & oCDTRetVal, Logger & oLogger) { if (iArgNum < 1) { oLogger.Emerg("Usage: JSONESCAPE(a[, b, ...])"); return -1; } STLW::string sResult; for(INT_32 iPos = iArgNum - 1; iPos >=0; --iPos) { switch (aArguments[iPos].GetType()) { case CDT::UNDEF: sResult.append("null", 4); break; case CDT::INT_VAL: case CDT::REAL_VAL: case CDT::POINTER_VAL: case CDT::STRING_INT_VAL: case CDT::STRING_REAL_VAL: sResult.append(aArguments[iPos].GetString()); break; case CDT::STRING_VAL: sResult.append(EscapeJSONString(aArguments[iPos].GetString(), true, false)); break; default: oLogger.Emerg("Invalid type %s", aArguments[iPos].PrintableType()); return -1; } } oCDTRetVal = sResult; return 0; }