C語言在處理字符串和JSON格式轉換時,通常需要使用到一些第三方庫,如cJSON、json-c等。下面我們以cJSON庫為例,講解如何把一個字符串轉為JSON。
#include <stdio.h> #include <stdlib.h> #include "cJSON.h" int main() { char* str = "{\"name\":\"Jack\", \"age\": 18, \"gender\": \"male\"}"; cJSON* root = cJSON_Parse(str); if (root) { cJSON* nameTag = cJSON_GetObjectItem(root, "name"); if (nameTag) { char* name = cJSON_Print(nameTag); printf("name: %s\n", name); free(name); } cJSON* ageTag = cJSON_GetObjectItem(root, "age"); if (ageTag) { int age = ageTag->valueint; printf("age: %d\n", age); } cJSON* genderTag = cJSON_GetObjectItem(root, "gender"); if (genderTag) { char* gender = genderTag->valuestring; printf("gender: %s\n", gender); } cJSON_Delete(root); } return 0; }
我們首先聲明一個字符串,該字符串是若干個鍵值對,表示一個JSON格式的數據。然后通過cJSON_Parse()函數將字符串轉為對應的cJSON對象,再通過cJSON_GetObjectItem()函數獲取指定字段的值。
需要注意的是,在獲取一個字符串字段的值時,需要通過valuestring取出字符串值。而獲取一個整型字段的值,則需要通過valueint。獲取其他類型的字段時,也需要根據對應類型的value進行取值。
上一篇python 看門狗
下一篇python 相除為0