欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json 去重

榮姿康2年前7瀏覽0評論

在開發中,經常需要對JSON數據進行去重,使其數據更清晰、更有序。而C語言是一門非常適合于處理數據的語言,所以C語言開發者很需要知道如何使用C語言對JSON進行去重。

//先定義JSON數據
char *jsonStr = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\",\"hobbies\":[\"coding\",\"reading\",\"swimming\"]}";
//將JSON轉化為cJSON格式
cJSON *root = cJSON_Parse(jsonStr);
//獲取hobbies數組
cJSON *hobbies = cJSON_GetObjectItem(root, "hobbies");
//定義一個map變量用于去重
mapm;
//遍歷數組
cJSON_ArrayForEach(hobby, hobbies) {
if (hobby->type == cJSON_String) {
//將hobby拼接為一個字符串
string key = hobby->valuestring;
//判斷是否已經存在該元素
if (m.find(key) == m.end()) {
//不存在則添加到map集合中
m[key] = true;
}
}
}
//移除重復元素
cJSON *newHobbies = cJSON_CreateArray();
for (auto it : m) {
cJSON_AddItemToArray(newHobbies, cJSON_CreateString(it.first.c_str()));
}
//將新的hobbies數組內容覆蓋舊的hobbies數組
cJSON_ReplaceItemInObject(root, "hobbies", newHobbies);
//打印新的JSON
char *newJson = cJSON_PrintUnformatted(root);
printf("%s", newJson);

以上代碼中,首先定義了一個JSON數據,并將其轉化為cJSON格式。然后獲取其中的hobbies數組,定義一個map變量m用于去重,并遍歷數組將元素拼接為一個字符串并添加到集合m中。最后移除重復元素并將新的hobbies數組覆蓋舊的數組,得到新的JSON字符串。

通過使用C語言的cJSON庫和STL的map集合,我們可以輕松地對JSON進行去重操作,使得數據更規范、更清晰、更易讀。