在C語言中,解析樹形層JSON數據并獲得值是一個非常重要的任務。JSON是一種鍵值對格式的數據結構,由花括號和方括號組成的。解析JSON數據的第一步是將其分解成樹形結構,然后遍歷該結構以獲取所需的值。
typedef struct JSON { enum { Object, Array, Integer, Float, String, Bool, Null } type; union { struct JSON *children; int integer; float flt; char *string; bool boolean; } value; } JSON; JSON* parseJson(char* jsonString); JSON* parseObject(char* jsonString, int* index); JSON* parseArray(char* jsonString, int* index);
使用上述代碼可以將json字符串解析為一個JSON結構,JSON結構中的各字段可以通過遍歷以獲取所需的值,例如:
JSON* object = parseJson(jsonString); for (int i = 0; i< numChildren; i++) { if (strcmp(object->children[i].name, "name") == 0) { printf("%s", object->children[i].value.string); } }
上述代碼中,我們通過遍歷JSON結構中的對象,找到其名稱為“name”的值,并將其打印出來。
簡而言之,C語言可以很容易地解析樹形層JSON數據。通過定義JSON結構和使用遍歷方法,我們可以獲得JSON對象中的各種值,從而完成各種任務。