greenJson_C++_Lib 之三:定义数据转换辅助

//<Part.三> 原子数据、JSON对象与字符串之间的互转处理。

//指定数据类型进行默认值的初始化
void dataInitValue(short& data);
void dataInitValue(unsigned short& data);
void dataInitValue(int& data);
void dataInitValue(unsigned int& data);
void dataInitValue(long& data);
void dataInitValue(unsigned long& data);
void dataInitValue(long long& data);
void dataInitValue(unsigned long long& data);
void dataInitValue(float& data);
void dataInitValue(double& data);
void dataInitValue(long double& data);
void dataInitValue(string& data);
void dataInitValue(char& data);
void dataInitValue(unsigned char& data);
void dataInitValue(signed char& data);
void dataInitValue(bool& data);
void dataInitValue(jsonObjectBaseClass& data);

//克隆原子数据
short* cloneObject(const short* data);
unsigned short* cloneObject(const unsigned short* data);
int* cloneObject(const int* data);
unsigned int* cloneObject(const unsigned int* data);
long* cloneObject(const long* data);
unsigned long* cloneObject(const unsigned long* data);
long long* cloneObject(const long long* data);
unsigned long long* cloneObject(const unsigned long long* data);
float* cloneObject(const float* data);
double* cloneObject(const double* data);
long double* cloneObject(const long double* data);
string* cloneObject(const string* data);
char* cloneObject(const char* data);
unsigned char* cloneObject(const unsigned char* data);
signed char* cloneObject(const signed char* data);
bool* cloneObject(const bool* data);

//克隆JSON对象的方法见前述。

////////////////////////////////////////////////////////////////////////////////////////////////////////////
//格式化方法集,将指定数据类型进行JSON字符串转换
void data2String(string& s, const short& data);
void data2String(string& s, const unsigned short& data);
void data2String(string& s, const int& data);
void data2String(string& s, const unsigned int& data);
void data2String(string& s, const long& data);
void data2String(string& s, const unsigned long& data);
void data2String(string& s, const long long& data);
void data2String(string& s, const unsigned long long& data);
void data2String(string& s, const float& data);
void data2String(string& s, const double& data);
void data2String(string& s, const long double& data);
void data2String(string& s, const string& data);
void data2String(string& s, const char& data);
void data2String(string& s, const unsigned char& data);
void data2String(string& s, const signed char& data);
void data2String(string& s, const bool& data);
void data2String(string& s, const jsonObjectBaseClass& data);

////////////////////////////////////////////////////////////////////////////////////////////////////////////
//将JSON字符串转为数据类型的指针
void string2DataPtr(short*& data, jsonStringParser & kvp);
void string2DataPtr(unsigned short*& data, jsonStringParser & kvp);
void string2DataPtr(int*& data, jsonStringParser & kvp);
void string2DataPtr(unsigned int*& data, jsonStringParser & kvp);
void string2DataPtr(long*& data, jsonStringParser & kvp);
void string2DataPtr(unsigned long*& data, jsonStringParser & kvp);
void string2DataPtr(long long*& data, jsonStringParser & kvp);
void string2DataPtr(unsigned long long*& data, jsonStringParser & kvp);
void string2DataPtr(float*& data, jsonStringParser & kvp);
void string2DataPtr(double*& data, jsonStringParser & kvp);
void string2DataPtr(long double*& data, jsonStringParser & kvp);
void string2DataPtr(string*& data, jsonStringParser & kvp);
void string2DataPtr(char*& data, jsonStringParser & kvp);
void string2DataPtr(unsigned char*& data, jsonStringParser & kvp);
void string2DataPtr(signed char*& data, jsonStringParser & kvp);
void string2DataPtr(bool*& data, jsonStringParser & kvp);

//字符串转JSON对象--只为编译,jsonStringParser在解析时用不上
template<class T>
void string2DataPtr(T*& data, jsonStringParser & kvp) {
	assert(false);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
//将json字符中转为数据类型数组指针
void string2DataArrayPtr(vector<short*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<unsigned short*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<int*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<unsigned int*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<long*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<unsigned long*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<long long*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<unsigned long long*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<float*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<double*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<long double*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<string*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<char*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<unsigned char*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<signed char*>& data, jsonStringParser & kvp);
void string2DataArrayPtr(vector<bool*>& data, jsonStringParser & kvp);

//字符串转JSON对象数组--只为编译,jsonStringParser在解析时用不上
template<class T>
void string2DataArrayPtr(vector<T*>& data, jsonStringParser & kvp) {
	assert(false);
}

//一个简单的计时器
class timeCost {
private:
	unsigned long time;
	const char* tips;
public:
	timeCost(const char * tips) {
		this->tips = tips;		
		time = GetTickCount();
	}
	~timeCost() {
		LOG4J_INFO("%s Cost %d ms", tips, GetTickCount() - time);
	}
};
发布了11 篇原创文章 · 获赞 1 · 访问量 304

猜你喜欢

转载自blog.csdn.net/u011697262/article/details/103940762