C語(yǔ)言是一門(mén)底層語(yǔ)言,但是在處理JSON數(shù)據(jù)方面有優(yōu)秀的解析庫(kù)。本文將介紹如何使用C語(yǔ)言解析JSON字符串?dāng)?shù)組。
#include <stdio.h> #include <jansson.h> int main(void) { const char *json_str = "[\"Hello\", \"world\"]"; json_t *root; size_t i; root = json_loads(json_str, 0, NULL); if (!root) { fprintf(stderr, "Failed to parse JSON string\n"); return 1; } if (!json_is_array(root)) { fprintf(stderr, "Root element is not an array\n"); json_decref(root); return 1; } for (i = 0; i< json_array_size(root); i++) { json_t *item = json_array_get(root, i); if (!json_is_string(item)) { fprintf(stderr, "Array element %d is not a string\n", i); json_decref(root); return 1; } printf("%s\n", json_string_value(item)); } json_decref(root); return 0; }
上述代碼首先將JSON字符串加載為JSON對(duì)象。檢查解析結(jié)果是否正確,如果不是數(shù)組類型則返回錯(cuò)誤。然后,遍歷數(shù)組的每一個(gè)元素,檢查它是否是字符串類型。最后打印出每個(gè)字符串。
C語(yǔ)言解析JSON字符串?dāng)?shù)組的過(guò)程需要注意一些細(xì)節(jié),例如必須檢查數(shù)組元素的類型,并且始終記得釋放JSON對(duì)象。
在使用JSON庫(kù)時(shí),需要確保一直進(jìn)行錯(cuò)誤檢查,并在必要時(shí)正確處理錯(cuò)誤。