some improvements i think
This commit is contained in:
@@ -249,6 +249,7 @@ public:
|
||||
|
||||
private:
|
||||
CUtlString RealWriteString( IJSONValue *pValue, uint32_t uOffest );
|
||||
CUtlString GetAsJsonString( CUtlString szString );
|
||||
|
||||
static bool ExpectedToken( Token_t &token, const char *szValue );
|
||||
static CUtlString GetQuotedToken( Token_t &token );
|
||||
@@ -308,7 +309,7 @@ CUtlString CJSONManager::GetQuotedToken( Token_t &token )
|
||||
return NULL;
|
||||
}
|
||||
|
||||
IJSONObject *CJSONManager::ParseObject( Token_t *&pToken, const Token_t *pEnding )
|
||||
IJSONObject *CJSONManager::ParseObject( Token_t *&pToken, const Token_t *pEnding )
|
||||
{
|
||||
IJSONObject *pObject;
|
||||
CUtlString szParamName;
|
||||
@@ -462,6 +463,37 @@ CUtlString CJSONManager::WriteString( IJSONValue *pValue )
|
||||
{
|
||||
return RealWriteString(pValue, 0);
|
||||
}
|
||||
CUtlString CJSONManager::GetAsJsonString( CUtlString szString )
|
||||
{
|
||||
CUtlString szOut = "\"";
|
||||
for ( int i = 0; i < szString.GetLenght(); i++ )
|
||||
{
|
||||
char c = szString[i];
|
||||
switch (c)
|
||||
{
|
||||
case '\"':
|
||||
szOut.AppendTail("\\\"");
|
||||
break;
|
||||
case '\n':
|
||||
szOut.AppendTail("\\n");
|
||||
break;
|
||||
case '\r':
|
||||
szOut.AppendTail("\\r");
|
||||
break;
|
||||
case '\t':
|
||||
szOut.AppendTail("\\t");
|
||||
break;
|
||||
case '\\':
|
||||
szOut.AppendTail("\\\\");
|
||||
break;
|
||||
default:
|
||||
szOut.AppendTail(c);
|
||||
break;
|
||||
}
|
||||
};
|
||||
szOut.AppendTail("\"");
|
||||
return szOut;
|
||||
}
|
||||
|
||||
CUtlString CJSONManager::RealWriteString( IJSONValue *pValue, uint32_t uOffset )
|
||||
{
|
||||
@@ -478,9 +510,9 @@ CUtlString CJSONManager::RealWriteString( IJSONValue *pValue, uint32_t uOffset )
|
||||
return "true";
|
||||
return "false";
|
||||
case JSON_PARAMETER_NUMBER:
|
||||
return CUtlString("\"%f\"", pValue->GetNumberValue());
|
||||
return CUtlString("%f", pValue->GetNumberValue());
|
||||
case JSON_PARAMETER_STRING:
|
||||
return CUtlString("\"%s\"", pValue->GetStringValue());
|
||||
return GetAsJsonString(pValue->GetStringValue());
|
||||
case JSON_PARAMETER_ARRAY:
|
||||
pArray = pValue->GetArray();
|
||||
szString.AppendTail("[\n");
|
||||
@@ -505,7 +537,7 @@ CUtlString CJSONManager::RealWriteString( IJSONValue *pValue, uint32_t uOffset )
|
||||
for ( uint32_t j = 0; j <= uOffset; j++)
|
||||
szString.AppendTail("\t");
|
||||
|
||||
szString.AppendTail(pObject->m_params[i].m_szName);
|
||||
szString.AppendTail(GetAsJsonString(pObject->m_params[i].m_szName));
|
||||
szString.AppendTail(": ");
|
||||
|
||||
szString.AppendTail(RealWriteString( pObject->m_params[i].m_pValue, uOffset+1 ));
|
||||
|
||||
Reference in New Issue
Block a user