對于一些需要對json進行修改的項目,可能需要在C語言中對json內容進行替換。下面將介紹一種簡單的方法:
//假設我們要將如下json內容中的"name"字段修改為"new_name" {"name": "old_name","age":18} #include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(int argc, char **argv) { char *json_str = "{\"name\": \"old_name\",\"age\":18}"; json_t *root; json_error_t error; // 解析json數據 root = json_loads(json_str, 0, &error); if (!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } // 查詢要修改的字段 json_t *name = json_object_get(root, "name"); if(json_is_string(name)){ // 修改字段值 int ret = json_string_set(name, "new_name"); printf("ret=%d\n",ret); } // 打印修改后的json char *new_json_str = json_dumps(root, JSON_COMPACT|JSON_ENSURE_ASCII); printf("new_json=%s\n",new_json_str); // 釋放內存 free(new_json_str); json_decref(root); return 0; }
以上代碼首先使用json_loads()函數解析json數據,然后使用json_object_get()函數獲取"name"字段,接著使用json_string_set()函數將字段值修改為"new_name"。最后使用json_dumps()函數將修改后的json轉換為字符串并打印出來。
上一篇c 從url讀取json
下一篇python 股票收益率