C語(yǔ)言是一門(mén)支持多種數(shù)據(jù)類型操作的編程語(yǔ)言,其中包括了JSON數(shù)組。如果要修改其中的數(shù)據(jù),需要使用一些相應(yīng)的函數(shù)來(lái)進(jìn)行操作。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main(void) { char *json_string = "{ \"numbers\": [1, 2, 3] }"; json_error_t error; json_t *root = json_loads(json_string, 0, &error); if (!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } json_t *numbers = json_object_get(root, "numbers"); if (!json_is_array(numbers)) { fprintf(stderr, "error: numbers is not an array\n"); json_decref(root); return 1; } size_t index; json_t *value; json_array_foreach(numbers, index, value) { if (!json_is_integer(value)) { fprintf(stderr, "error: value %d is not an integer\n", (int)(index + 1)); json_decref(root); return 1; } json_integer_set(value, json_integer_value(value) * 2); } char *result = json_dumps(root, JSON_INDENT(4)); printf("%s\n", result); free(result); json_decref(root); return 0; }
上述代碼展示了如何使用C語(yǔ)言修改JSON數(shù)組中的數(shù)據(jù)。首先,使用json_loads函數(shù)將字符串轉(zhuǎn)換為JSON對(duì)象。然后,使用json_object_get函數(shù)獲取“numbers”鍵對(duì)應(yīng)的值,并用json_is_array函數(shù)檢查該值是否為JSON數(shù)組。接著,使用json_array_foreach函數(shù)將數(shù)組中的每個(gè)值都遍歷一遍,并使用json_integer_set函數(shù)將其原有的值乘以2。最后,使用json_dumps函數(shù)將JSON對(duì)象轉(zhuǎn)換回JSON字符串。