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

c json 篩選重復值

林玟書2年前9瀏覽0評論

C json是一種輕量級的數據交換格式,常用于在不同系統間傳遞數據。在處理json數據時,我們可能需要篩選出重復值,這就需要使用到一些技巧。

// 示例json數據
{
"name": "張三",
"age": 20,
"gender": "男",
"hobbies": ["游泳", "籃球", "游戲"],
"friends": [
{"name": "李四", "age": 22},
{"name": "王五", "age": 23},
{"name": "李四", "age": 22}
]
}
// 篩選friends中的重復項
void findDuplicate(cJSON* friends) {
int arraySize = cJSON_GetArraySize(friends);
cJSON* friendNameMap = cJSON_CreateObject();  // 保存姓名和計數的map
for (int i = 0; i< arraySize; i++) {
cJSON* friendNode = cJSON_GetArrayItem(friends, i);
cJSON* nameNode = cJSON_GetObjectItem(friendNode, "name");
const char* name = nameNode->valuestring;
cJSON* countNode = cJSON_GetObjectItem(friendNameMap, name);
if (countNode) {
int count = countNode->valueint;
cJSON_SetIntValue(countNode, ++count);
if (count == 2) {
printf("重復的朋友名字:%s\n", name);
}
} else {
cJSON_AddNumberToObject(friendNameMap, name, 1);
}
}
}

以上就是C json篩選重復值的一個示例,通過遍歷數組元素,使用一個Map記錄每個名字的出現次數,當出現次數等于2時則可以認為是重復項。這種方法可以適用于一些簡單的json數據,如果數據結構較為復雜,可能需要使用更為高效的算法和數據結構。