C語言在處理JSON數據時,可以使用第三方庫cJSON來解析和讀取JSON字符串。如果需要獲取JSON字符串某節點的值,可依照下面的步驟:
/* 假設JSON字符串如下,需要獲取"age"的值 */ char *json_string = "{"name": "Tom", "age": 18}"; cJSON *root = cJSON_Parse(json_string); // 將JSON字符串轉化為cJSON結構體 if (!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); } else { cJSON *node = cJSON_GetObjectItem(root, "age"); // 獲取 age 節點 if (node) { printf("%d\n", node->valueint); // 輸出 age 節點的值 } } cJSON_Delete(root); // 釋放內存
使用cJSON_Parse(json_string)函數將JSON字符串解析為cJSON的結構體*root,失敗時會返回NULL,可通過cJSON_GetErrorPtr()查看失敗原因。然后使用cJSON_GetObjectItem(root, "age")獲取age節點,注意這里用的是cJSON_GetObjectItem,因為節點是一個對象(object),而不是一個數組(array)。如果獲取成功,將會返回age節點的指針*node,再使用node->valueint獲取節點的值。
以上是一個簡單的實例,使用cJSON還可以獲取更深層次的節點,具體方法可參考官方文檔(https://github.com/DaveGamble/cJSON/blob/master/docs/cJSON_API.md)。
上一篇vue.js grunt
下一篇vue ajax上傳圖片