在C語言中,字符串是一種很重要的數(shù)據(jù)類型。當(dāng)涉及到處理JSON數(shù)據(jù)時(shí),將C字符串與JSON字符串進(jìn)行轉(zhuǎn)換是很常見的操作。本文將介紹如何在C中處理JSON字符串。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(void) { char *json_string = "{\"name\": \"Tom\", \"age\": 21}"; json_error_t error; json_t *root = json_loads(json_string, 0, &error); if (!root) { printf("json error on line %d: %s", 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\n", json_string_value(name)); printf("age: %d\n", json_integer_value(age)); json_decref(root); return 0; }
在上面的代碼中,首先定義了一個(gè)JSON字符串。然后使用json_loads()函數(shù)將其轉(zhuǎn)換為json_t對(duì)象,如果轉(zhuǎn)換失敗,則會(huì)返回一個(gè)NULL值,需要對(duì)對(duì)應(yīng)的解析錯(cuò)誤進(jìn)行處理。如果json_t對(duì)象成功創(chuàng)建,則可以通過json_object_get()函數(shù)獲得對(duì)應(yīng)JSON鍵的值,然后再使用相應(yīng)的json_value類型函數(shù)獲取其值。
C語言中的JSON處理庫有很多,其中最常用的是jansson庫。使用jansson庫可以方便地進(jìn)行JSON字符串的解析、創(chuàng)建、寫入等操作。