clsJson.cpp 3.1 KB


#include "clsJson.h"
#include <stdarg.h>
#include <string.h>
#include "clsUtil.h"
namespace DmapCore_30
{
    void clsJson::ParseEnum(const char *name, char *resultbuff, char* buff, int v, string a1, string a2 , string a3, string a4, string a5, string a6, string a7, string a8, string a9, string a10, string a11, string a12, string a13, string a14, string a15, string a16)
    {

        string vstring = a1;
        switch (v)
        {
        case 0: vstring = a1; break;
        case 1: vstring = a2; break;
        case 2: vstring = a3; break;
        case 3: vstring = a4; break;
        case 4: vstring = a5; break;
        case 5: vstring = a6; break;
        case 6: vstring = a7; break;
        case 7: vstring = a8; break;
        case 8: vstring = a9; break;
        case 9: vstring = a10; break;
        case 10: vstring = a11; break;
        case 11: vstring = a12; break;
        case 12: vstring = a13; break;
        case 13: vstring = a14; break;
        case 14: vstring = a15; break;
        case 15: vstring = a16; break;
        }
        sprintf(buff, "\"%s\":\"%s\",", name, vstring.c_str());
        strcat(resultbuff, buff);
    }

     void  clsJson::JsonAttrParse(const char* name,char* resultbuff,char* buff, string &v)
     {
         sprintf(buff, "\"%s\":\"%s\",", name, v.c_str());
         strcat(resultbuff, buff);
     }

      void  clsJson::JsonAttrParse(const char* name,char* resultbuff,char* buff, bool &v)
     {
         sprintf(buff, "\"%s\":\"%s\",", name, v?"true":"false");
         strcat(resultbuff, buff);
     }

 void  clsJson::JsonAttrParse(const char* name,char* resultbuff,char* buff, double &v)
     {
         sprintf(buff, "\"%s\":\"%0.2f\",", name,v);
         strcat(resultbuff, buff);
     }

      void  clsJson::JsonAttrParse(const char* name,char* resultbuff,char* buff, int &v)
     {
         sprintf(buff, "\"%s\":\"%d\",", name, v);
         strcat(resultbuff, buff);
     }

      void  clsJson::JsonAttrParse(const char* name,char* resultbuff,char* buff, long &v)
     {
         sprintf(buff, "\"%s\":\"%ld\",", name, v);
         strcat(resultbuff, buff);
     }

     void clsJson::JsonAttrEnd(char* resultbuff)
     {
         int len = strlen(resultbuff);
         if(len>0 && resultbuff[len-1] == ',')
         {
             resultbuff[len-1] = '}';
         }
         else
         {
            resultbuff[len] = '}';
            resultbuff[len+1] = 0;
         }
     }


     void clsJson::JsonAttrParseColor(const char* name,const char*name2,char* resultbuff,char* buff,unsigned int& iColor)
	{
		string sColor = "", sTransparency = "";
		int a = (int)(((unsigned char*)(&iColor))[3]);
		int r = (int)(((unsigned char*)(&iColor))[2]);
		int g = (int)(((unsigned char*)(&iColor))[1]);
		int b = (int)(((unsigned char*)(&iColor))[0]);
		//char s1[500], s2[500];
		//StringHelp::fmt(s1, "%d,%d,%d", r, g, b);
		//StringHelp::fmt(s2, "%lf", a / 255.0);
		sColor = clsUtil::fmt("%d,%d,%d", r, g, b);
	    sTransparency = clsUtil::fmt("%.2f", a / 255.0);

		
        sprintf(buff, "\"%s\":\"%s\",\"%s\":\"%s\",", name, sColor.c_str(),name2,sTransparency.c_str());
        strcat(resultbuff, buff);
	}

} // namespace DmapDll