c post json數據轉換
C語言中使用json數據格式來進行數據傳輸和存儲,并且使用簡單方便,所以我們需要掌握如何將post json數據進行轉換。本文將會介紹如何使用C語言進行post json數據轉換。
首先,我們需要使用CURL庫發送http請求,并使用libjson-c庫對json數據進行解析和生成。CURL庫將請求發送給服務器,將服務器的響應數據以字符串形式返回給我們,我們需要從字符串中解析出json數據。
CURL *curl; CURLcode res; char *response; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/"); res = curl_easy_perform(curl); if(res == CURLE_OK){ response = malloc(strlen(curl_response)+1); strcpy(response, curl_response); } curl_easy_cleanup(curl); }
在成功發送請求后,我們將字符串傳入json_tokener_parse函數中進行解析,如下所示。
json_object *jobj; json_tokener *tok = json_tokener_new(); int len = strlen(response); int pos = 0; while (pos< len) { jobj = json_tokener_parse_ex(tok, response+pos, len-pos); pos += tok->char_offset; if (jobj != NULL) { break; } } json_tokener_free(tok);
解析成功后,我們可以對json數據進行操作,例如從中獲取屬性值。
json_object *attr_json = json_object_object_get(jobj, "attr_name"); if (is_json_type_int(attr_json)) { int attr_value = json_object_get_int(attr_json); }
最后,我們可以通過調用json_object_put函數釋放json對象,釋放內存,如下所示。
json_object_put(jobj); free(response);
上述就是C語言中post json數據轉換的簡單流程。