clsJson.cpp
3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#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