C語(yǔ)言是一種面向過(guò)程的編程語(yǔ)言,不同于其他高級(jí)編程語(yǔ)言,它沒(méi)有一些方便的工具和庫(kù)來(lái)處理JSON數(shù)據(jù)。但是,在C語(yǔ)言中仍然存在一種方法來(lái)接收J(rèn)SON數(shù)據(jù),并將其解析為C結(jié)構(gòu)。
#include <stdio.h> #include <jansson.h> int main() { char *json_string = "{ 'name': 'John', 'age': 28, 'city': 'New York' }"; 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; } const char *name; int age; const char *city; json_unpack(root, "{s:s, s:i, s:s}", "name", &name, "age", &age, "city", &city); printf("Name: %s\n", name); printf("Age: %d\n", age); printf("City: %s\n", city); json_decref(root); return 0; }
該代碼使用第三方庫(kù)“jansson”,該庫(kù)提供了一個(gè)簡(jiǎn)單的JSON解析器和構(gòu)建器,并且可以在Unix,Linux和Windows系統(tǒng)中使用。在此,我們使用json_loads()函數(shù)將JSON字符串轉(zhuǎn)換為JSON對(duì)象。
然后,我們使用json_unpack()函數(shù)將JSON對(duì)象中的JSON值解包到變量中,以便我們可以使用這些值執(zhí)行任何操作。
最后,我們使用json_decref()函數(shù)來(lái)釋放分配給JSON對(duì)象的內(nèi)存。
上一篇c#如何解析json文件
下一篇c#取json字符串的值