我有一个由外部硬件(DMA)填充的缓冲区。发生这种情况时,我可以使用以下代码打印数据:
void* buffer;
...
/*buffer is initialized and filled at some point*/
...
for (k=0; k<10; k++) {
printf("%d ", ((unsigned int*) buffer)[k]);
}
我想使用libjson提供的功能将此数据转换为JSON格式。这是我的尝试:
json_object * jobj = json_object_new_object();
json_object *jarray = json_object_new_array();
if (!jobj || !jarray) {
return NULL;
}
...
for (k=0; k<10; k++) {
printf("%d ", (((unsigned int*) buffer);
sprintf(str, "%d", ((unsigned int*) buffer)[k]);
json_object *jstring = json_object_new_string(str);
json_object_array_add(jarray,jstring);
}
json_object_object_add(jobj,"array", jarray);
此代码有效,但我不确定“json_object * jstring”的定义是否正确,特别是对于大量数据。