C語言是一種廣泛應用于嵌入式系統和操作系統中的編程語言。其中,生成JSON數據是C語言中的一項常見任務。下面,我們就來介紹如何用C語言生成兩層JSON數據。
首先,我們需要引入JSON庫。在C語言中,常用的JSON庫有cJSON、json-c等。在本文中,我們以cJSON為例。
#include <stdio.h> #include <stdlib.h> #include <cJSON.h>
接下來,我們可以開始生成JSON數據了。首先,定義兩個cJSON對象分別表示第一層和第二層JSON數據。代碼如下:
cJSON* jroot = cJSON_CreateObject(); // 第一層JSON對象 cJSON* jsub = cJSON_CreateObject(); // 第二層JSON對象
然后,我們給第二層JSON對象添加數據。這里我們添加兩個key-value對,分別表示姓名和年齡:
cJSON_AddStringToObject(jsub, "name", "張三"); cJSON_AddNumberToObject(jsub, "age", 18);
接著,我們給第一層JSON對象添加數據。這里我們將第二層JSON對象作為一個value添加到第一層JSON對象中,其key為“person”:
cJSON_AddItemToObject(jroot, "person", jsub);
最后,將第一層JSON對象輸出為JSON字符串:
char* strJson = cJSON_Print(jroot); printf("%s", strJson);
完整的代碼如下:
#include <stdio.h> #include <stdlib.h> #include <cJSON.h> int main(int argc, char* argv[]) { // 創建第二層JSON對象 cJSON* jsub = cJSON_CreateObject(); cJSON_AddStringToObject(jsub, "name", "張三"); cJSON_AddNumberToObject(jsub, "age", 18); // 創建第一層JSON對象,并將第二層JSON對象添加到其中 cJSON* jroot = cJSON_CreateObject(); cJSON_AddItemToObject(jroot, "person", jsub); // 輸出JSON字符串 char* strJson = cJSON_Print(jroot); printf("%s", strJson); // 釋放內存 cJSON_Delete(jroot); free(strJson); return 0; }
執行上述代碼,控制臺將輸出如下JSON字符串:
{ "person":{ "name":"張三", "age":18 } }
到此,我們就成功地用C語言生成了兩層JSON數據。