C語(yǔ)言中如何把字符串轉(zhuǎn)換成JSON格式呢?
首先需要準(zhǔn)備好JSON庫(kù)。目前比較常用的有cJSON和jansson。下面以cJSON為例進(jìn)行講解。
#include "cJSON.h" /* 定義JSON字符串 */ char *str = "{\"name\":\"Tom\",\"age\":20,\"gender\":\"male\"}"; int main() { /* 解析JSON字符串 */ cJSON *root = cJSON_Parse(str); /* 判斷解析是否成功 */ if (root == NULL) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return -1; } /* 獲取名字 */ char *name = cJSON_GetObjectItem(root, "name")->valuestring; printf("name: %s\n", name); /* 獲取年齡 */ int age = cJSON_GetObjectItem(root, "age")->valueint; printf("age: %d\n", age); /* 獲取性別 */ char *gender = cJSON_GetObjectItem(root, "gender")->valuestring; printf("gender: %s\n", gender); /* 釋放解析結(jié)果 */ cJSON_Delete(root); return 0; }
可以看到,使用cJSON庫(kù)解析JSON格式的字符串非常簡(jiǎn)單,只需要調(diào)用cJSON_Parse函數(shù)即可。
在指定的JSON對(duì)象中查找某一個(gè)鍵值對(duì)的方法也非常簡(jiǎn)單,只需要使用cJSON_GetObjectItem函數(shù),并指定需要查找的鍵名即可。如果要獲取鍵值對(duì)的具體數(shù)值,則需要根據(jù)鍵的值類型來(lái)調(diào)用相應(yīng)的獲取函數(shù)。
最后記得釋放解析結(jié)果。