JSON(JavaScript Object Notation) 是一種輕量級的數據交互格式。C語言中已經有了一些JSON庫,例如cJSON和json-c等,可以方便地解析和生成JSON對象。
JSON對象的值可以是以下幾種類型:
{ "string": "hello world", "number": 123, "boolean": true, "null": null, "array": [1, 2, 3], "object": {"name": "Alice", "age": 20} }
在C語言中,使用cJSON庫可以很方便地解析JSON對象。例如:
cJSON *root = cJSON_Parse(json_str); cJSON *string = cJSON_GetObjectItem(root, "string"); if (string != NULL) { printf("string value: %s\n", string->valuestring); } cJSON_Delete(root);
上面的代碼解析了一個JSON字符串,并從中讀取了一個鍵值為string的字符串類型的值。
如果需要生成一個JSON對象,可以使用cJSON庫提供的函數,例如:
cJSON *root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "string", cJSON_CreateString("hello world")); cJSON_AddItemToObject(root, "number", cJSON_CreateNumber(123)); cJSON_AddItemToObject(root, "boolean", cJSON_CreateBool(true)); cJSON_AddItemToObject(root, "null", cJSON_CreateNull()); cJSON *array = cJSON_CreateArray(); cJSON_AddItemToArray(array, cJSON_CreateNumber(1)); cJSON_AddItemToArray(array, cJSON_CreateNumber(2)); cJSON_AddItemToArray(array, cJSON_CreateNumber(3)); cJSON_AddItemToObject(root, "array", array); cJSON *object = cJSON_CreateObject(); cJSON_AddItemToObject(object, "name", cJSON_CreateString("Alice")); cJSON_AddItemToObject(object, "age", cJSON_CreateNumber(20)); cJSON_AddItemToObject(root, "object", object); char *json_str = cJSON_Print(root); cJSON_Delete(root); printf("JSON string: %s\n", json_str); free(json_str);
上面的代碼生成了一個包含多種類型的JSON對象,并將其輸出為JSON字符串。