我目前正在使用非常简单的JSON对象与我的平台进行通信。例如,它们遵循以下格式:
{"key":"value","key2":"value2"}
为了避免各种JSON库的开销,我目前使用简单的sprintf语句生成JSON对象:
sprintf("{\"key\":\"%s\",\"key\":\"%d\"}"), buffer, value, nValue);
这很好,因为我生成的缓冲区直接发送到tcp套接字,我不必从JSON库类型转换为char *。问题是格式化JSON很不方便,特别是转义引号。我想要一个更方便的语法,同时仍然只分配一个缓冲区。我的想法是为此创建一个包装函数,并生成在编译时传递给sprintf的格式字符串。导致类似于:
的用例jsonHelperFunction(&buffer, key, value, key2, value2);
辅助函数可能必须使用模板,但我不确定如何使用它们来生成sprintf使用的格式字符串。有没有人知道如何在编译时有效地做到这一点?