c語言中,解析json數(shù)據(jù)格式是一項非常重要的任務(wù)。json是一種輕量級的數(shù)據(jù)交換格式,用于前端和后端之間的數(shù)據(jù)傳輸和存儲。在c語言中,通過使用第三方庫或手寫代碼,解析json數(shù)據(jù)格式非常方便。
下面為大家簡單介紹c語言中如何解析json數(shù)據(jù),獲取想要的值:
#include <stdio.h>
#include <jansson.h>
int main()
{
char *json_str = "{\"name\":\"apple\",\"price\":2.5,\"weight\":0.3}";
json_error_t error;
json_t *root = json_loads(json_str, JSON_DECODE_ANY, &error); // 解析json字符串
if(!root)
{
printf("json error on line %d: %s\n", error.line, error.text); // 解析出錯
return -1;
}
json_t *name_value = json_object_get(root, "name"); // 獲取name鍵對應(yīng)的值
json_t *price_value = json_object_get(root, "price"); // 獲取price鍵對應(yīng)的值
json_t *weight_value = json_object_get(root, "weight"); // 獲取weight鍵對應(yīng)的值
const char *name_str = json_string_value(name_value); // 獲取name值的字符串形式
double price = json_real_value(price_value); // 獲取price值的浮點數(shù)形式
double weight = json_real_value(weight_value); // 獲取weight值的浮點數(shù)形式
printf("name: %s\nprice: %.2f\nweight: %.2f\n", name_str, price, weight);
json_decref(root); // 釋放內(nèi)存
return 0;
}
以上代碼使用了jansson庫來解析json字符串,獲取了字符串"name"、浮點數(shù)"price"和浮點數(shù)"weight"對應(yīng)的值,并輸出到控制臺上。
在實際開發(fā)中,我們也可以使用其他的json解析庫來方便地解析json數(shù)據(jù),并獲取想要的值。