JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,經(jīng)常用于客戶端和服務(wù)器之間的數(shù)據(jù)交互。在C編程中,我們有時(shí)需要從JSON字符串中解析出數(shù)據(jù)。那么,如何在C中解析JSON字符串呢?以下是一些示例代碼:
#include <stdio.h> #include <jansson.h> int main() { const char *json_string = "{\"name\": \"Tom\", \"age\": 25}"; json_error_t error; json_t *root = json_loads(json_string, 0, &error); if (!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } json_t *name = json_object_get(root, "name"); json_t *age = json_object_get(root, "age"); printf("name=%s, age=%d\n", json_string_value(name), json_integer_value(age)); json_decref(root); return 0; }
在這個(gè)示例中,我們使用jansson庫(kù)來(lái)處理JSON字符串。第一步是使用json_loads函數(shù)將JSON字符串加載到一個(gè)json_t對(duì)象中。如果出現(xiàn)錯(cuò)誤,則會(huì)返回NULL,我們可以使用json_error_t結(jié)構(gòu)體來(lái)獲取錯(cuò)誤信息。
然后,我們使用json_object_get函數(shù)從json_t對(duì)象中提取值。在這個(gè)示例中,我們獲取了"name"和"age"的值,并使用json_string_value和json_integer_value函數(shù)來(lái)獲取它們的值。
最后,使用json_decref函數(shù)釋放json_t對(duì)象。
總的來(lái)說(shuō),解析JSON字符串在C中并不是非常困難,只需要使用適當(dāng)?shù)膸?kù)和函數(shù)即可。如果你需要在C中處理JSON數(shù)據(jù),希望這篇文章對(duì)你有所幫助。