JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它的數據類型有 object(對象)、array(數組)、number(數字)、string(字符串)、boolean(布爾值)和 null(空值)。
{ "name": "John", "age": 30, "city": "New York", "isStudent": true, "courses": [ { "name": "Math", "score": 90 }, { "name": "English", "score": 85 } ], "address": null }
上面是一個對象的例子,它有五個屬性:name、age、city、isStudent 和 address。其中,name 和 city 是字符串類型,age 是數字類型,isStudent 是布爾類型,courses 是數組類型,address 是空類型。
對象的屬性名必須是字符串類型,屬性值可以是任意類型。數組是由方括號包裹著一系列值組成的,每個值可以是任意類型。字符串必須用雙引號包裹,數字可以是整數或浮點數。
使用 C 語言處理 JSON 數據需要按照 JSON 格式規范來對字符串進行解析,并根據數據類型構造相應的數據結構。常見的 JSON 解析庫有 cJson、Jansson 等。在解析 JSON 字符串時,可以用 strlen 函數獲得字符串長度,用 malloc 函數為字符串分配內存。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "cjson/cJSON.h" int main() { char* json_string = "{\"name\":\"John\",\"age\":30,\"isStudent\":true}"; cJSON* json = cJSON_Parse(json_string); if (json) { printf("name: %s\n", cJSON_GetObjectItem(json, "name")->valuestring); printf("age: %d\n", cJSON_GetObjectItem(json, "age")->valueint); printf("isStudent: %s\n", cJSON_GetObjectItem(json, "isStudent")->valueint ? "true" : "false"); cJSON_Delete(json); } else { printf("Failed to parse JSON string.\n"); } return 0; }
上面是一個使用 cJson 解析 JSON 字符串的示例,它將一個字符串解析成一個 cJSON 對象,然后根據對象的屬性名獲取屬性值,并輸出到控制臺。
上一篇python 數據庫畫圖
下一篇get返回值json