#ifndef USER_CERT_PRESENT #define USER_CERT_PRESENT #include "type.h" extern const char *ca_cert; extern const char *client_cert; extern const char *client_key; extern const char *http_header_fmt; extern const char *json_data; // 以下为JSON打包函数 char *JSON_data(); void json_initialize(); void json_finish(); void json_new_object(); void json_end_object(); void json_new_array(char *key); void json_end_array(); void json_new_intValue(char *key, int val); void json_new_doubleValue(char *key, double val); void json_new_stringValue(char *key, char *val); void json_new_boolValue(char *key, uint32_t val); // 以内为JSON解析函数,只解析最简单的记录(无数组和嵌套,数据类型只支持字符型、整型和浮点型) #define JSON_FIELD_COUNT (25) #define JSON_NAME_LENGTH (19) #define JSON_VAL_LENGTH (29) #define JSON_TYPE_NULL (0) #define JSON_TYPE_INTEGER (1) #define JSON_TYPE_FLOAT (2) #define JSON_TYPE_STRING (3) #pragma pack(push, 1) typedef struct { char name[JSON_NAME_LENGTH + 1]; // \0 int type; union { char val[JSON_VAL_LENGTH + 2 + 1]; // \"\"\0 char s[JSON_VAL_LENGTH + 1]; // \0 struct { long i; float f; }; }; } JSON_field; #pragma pack(pop) extern JSON_field JSON_Record[JSON_FIELD_COUNT]; int JSON_Parse_Record(char **src); #endif