C語言是一種可編程性較強的語言,主流軟件中有大量基于C語言的開發。而C語言的JSON庫提供了一種數據格式轉換的方法,實現了JSON和DS(數據結構)的轉換。
#include "cJSON.h" //包含cJSON庫頭文件 ... cJSON *json, *data, *object; //定義cJSON對象指針 int size; char *jsonStr = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\",\"data\":[1, 2, 3, 4]}"; //定義JSON格式字符串,里面嵌套數組 json = cJSON_Parse(jsonStr); //將json字符串轉換成cJSON對象 if (json != NULL) { printf("json parse success\n"); //獲取json中的name, age, city cJSON *name = cJSON_GetObjectItem(json, "name"); cJSON *age = cJSON_GetObjectItem(json, "age"); cJSON *city = cJSON_GetObjectItem(json, "city"); printf("name: %s, age: %d, city: %s\n", name->valuestring, age->valueint, city->valuestring); //獲取json中的data數組 data = cJSON_GetObjectItem(json, "data"); //獲取數組長度 size = cJSON_GetArraySize(data); printf("size: %d\n", size); //遍歷數組 for (int i = 0; i< size; i++) { object = cJSON_GetArrayItem(data, i); printf("%d ", object->valueint); } }
以上是將JSON格式字符串轉換成cJSON對象的DEMO,可以根據需要進行修改。在獲取到cJSON對象后,可以通過cJSON的API操作,如根據key獲取value、遍歷數組、獲取數組長度等。當然,由于cJSON本身提供的API有限,需要實現更多的操作時,需要進行封裝,也可以參考其它庫的操作方式進行封裝。
最后,需要注意的是,轉換成DS并非是cJSON的固有功能,需要自行進行封裝,將cJSON對象轉換為DS。具體實現需要根據實際情況進行。
上一篇python 計算和合并
下一篇python 計算布林