c語言讀取json某個值的方法
#include <stdio.h> #include <jansson.h> // 讀取json某個值的函數 int getJsonValue(json_t *json, const char *key, char *buf, int len) { const char *value = json_string_value(json_object_get(json, key)); if (value == NULL) { return -1; } snprintf(buf, len, "%s", value); return 0; } int main() { // 解析json json_error_t error; json_t *root = json_loads("{\"name\":\"apple\",\"count\":10}", 0, &error); if (!root) { fprintf(stderr, "json error on line %d: %s\n", error.line, error.text); return 1; } // 獲取name的值 char name[20]; if (getJsonValue(root, "name", name, sizeof(name)) == 0) { printf("name: %s\n", name); } // 獲取count的值 char count[10]; if (getJsonValue(root, "count", count, sizeof(count)) == 0) { printf("count: %s\n", count); } // 釋放json對象 json_decref(root); return 0; }
以上就是使用c語言讀取json某個值的方法。通過json_object_get函數獲取key對應的json值,再使用json_string_value函數獲取字符串,最后使用snprintf函數將值復制到自定義的buf中。