c语言定义一个结构体 参数包含 vin :类型 string,timestamp :类型 long ,sdkVersion 类型 string(128),deviceId:string 同时给出结构体转为json的代码
时间: 2024-02-17 17:01:13 浏览: 79
下面是定义结构体并转换为 JSON 格式的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
typedef struct {
char vin[20];
long timestamp;
char sdkVersion[128];
char deviceId[20];
} MyStruct;
int main() {
MyStruct s = {
.vin = "12345",
.timestamp = 1614279599,
.sdkVersion = "1.0.0",
.deviceId = "67890"
};
// Convert struct to JSON
json_t *root = json_object();
json_object_set_new(root, "vin", json_string(s.vin));
json_object_set_new(root, "timestamp", json_integer(s.timestamp));
json_object_set_new(root, "sdkVersion", json_string(s.sdkVersion));
json_object_set_new(root, "deviceId", json_string(s.deviceId));
char *json_str = json_dumps(root, JSON_INDENT(2));
printf("%s\n", json_str);
// Clean up
free(json_str);
json_decref(root);
return 0;
}
```
代码中使用了 `jansson` 库来处理 JSON 格式,需要在编译时链接该库,例如:
```
gcc -o main main.c -ljansson
```
输出结果为:
```json
{
"deviceId": "67890",
"sdkVersion": "1.0.0",
"timestamp": 1614279599,
"vin": "12345"
}
```
阅读全文