在C語言中,我們可以使用第三方庫來傳遞JSON字符串。常用的第三方庫有cJSON、JSON-C等。
cJSON *root = cJSON_CreateObject(); cJSON *array = cJSON_CreateArray(); cJSON_AddNumberToObject(root, "id", 123); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddItemToArray(array, cJSON_CreateString("English")); cJSON_AddItemToArray(array, cJSON_CreateString("Math")); cJSON_AddItemToObject(root, "subjects", array); char *json = cJSON_Print(root); printf("JSON: %s \n", json);
在上述代碼中,我們使用了cJSON庫來創建一個JSON對象,并添加了一些屬性和數組。最后,我們把這個JSON對象轉換成字符串,并通過printf函數輸出。
當然,使用cJSON還可以從JSON字符串中解析出JSON對象,例如:
char *json_str = "{\"id\":123,\"name\":\"John\",\"subjects\":[\"English\",\"Math\"]}"; cJSON *root = cJSON_Parse(json_str); cJSON *id = cJSON_GetObjectItem(root, "id"); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *subjects = cJSON_GetObjectItem(root, "subjects"); printf("id: %d \n", id->valueint); printf("name: %s \n", name->valuestring); cJSON *item; cJSON_ArrayForEach(item, subjects) { printf("subject: %s \n", item->valuestring); }
在這個示例中,我們把JSON字符串{"id":123,"name":"John","subjects":["English","Math"]}賦給了json_str變量。接著,我們使用cJSON_Parse函數從這個字符串中得到了一個JSON對象root,并從這個對象中獲取了id、name、subjects等屬性,并對它們進行了輸出。
總的來說,使用cJSON可以輕松地傳遞和解析JSON字符串,使得我們的程序可以更加方便地與其他系統交互。