在C語言中,解析JSON是一項非常普遍的任務(wù)。 JSON是一種數(shù)據(jù)格式,它在不同應(yīng)用和平臺之間傳遞數(shù)據(jù)非常方便。使用JSON庫可以在C程序中讀取和解析JSON格式的數(shù)據(jù)。
以下是一個使用C語言中的JSON庫遍歷JSON的示例代碼:
#include <stdio.h> #include <jansson.h> int main() { //JSON格式的數(shù)據(jù) const char *json_data = "{ \"name\":\"Lucas\", \"age\":26, \"gender\":\"male\", \"interests\":[\"cook\",\"reading\",\"travel\"] }"; //解析JSON json_t *root; json_error_t error; root = json_loads(json_data, 0, &error); if(!root) { printf("error: on line %d: %s\n", error.line, error.text); return 1; } //獲取JSON中的數(shù)據(jù) json_t *name, *age, *gender, *interests; name = json_object_get(root, "name"); age = json_object_get(root, "age"); gender = json_object_get(root, "gender"); interests = json_object_get(root, "interests"); //遍歷數(shù)組 int interests_size = json_array_size(interests); printf("interests:\n"); for(int i = 0; i < interests_size; i++) { json_t* interest = json_array_get(interests, i); printf("%s\n", json_string_value(interest)); } //釋放內(nèi)存 json_decref(root); return 0; }
在上面的代碼中,我們使用json_loads()函數(shù)從JSON格式的數(shù)據(jù)中讀取數(shù)據(jù),json_object_get()函數(shù)獲取JSON中的數(shù)據(jù),json_array_size()函數(shù)獲取JSON數(shù)組中元素的數(shù)量,json_array_get()函數(shù)獲取JSON數(shù)組中的元素,json_string_value()函數(shù)獲取JSON字符串中的值。
使用C語言中的JSON庫可以輕松地遍歷和解析JSON數(shù)據(jù),對于需要處理JSON數(shù)據(jù)的項目非常有用。