在c mvc中解析json是很重要的技能之一,因為現在許多web應用都需要處理json數據。下面是一個簡單的例子來說明如何在c mvc中解析json。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { char *json_string = "{\"name\": \"張三\", \"age\": 20}"; json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if(!root) { printf("解析json出錯: %s\n", error.text); exit(1); } const char *name; int age; json_unpack(root, "{s:s, s:i}", "name", &name, "age", &age); printf("name: %s\n", name); printf("age: %d\n", age); json_decref(root); return 0; }
這個例子中我們首先定義了一段json字符串,然后用json_loads函數將它解析成一個json對象。如果解析失敗,我們輸出錯誤信息并結束程序。
接下來我們使用json_unpack函數從json對象中提取數據。它的第一個參數是我們要提取數據的json對象,第二個參數是一個格式化字符串,用來指定我們要提取的數據類型以及存儲它們的變量。在這個例子中,我們要提取的是一個字符串和一個整數,于是用{s:s, s:i}來表示這個格式化字符串。第三個參數之后的一系列變量就是我們要存儲提取出的數據的變量。在這個例子中,我們有一個名為name的字符串變量和一個名為age的整數變量。
最后我們輸出提取出的數據并將json對象引用計數減少一,以釋放它占用的內存。