在C语言中遍历JSON集合(也称为JSON数组)是一项常见的任务。通常,我们可以使用任何一种现成的JSON库来读取JSON文件或字符串,然后将其转换为C实例。此后,我们可以使用循环结构遍历该JSON实例的所有元素。
// 假设我们已经使用JSON库将JSON字符串转换为C实例,例如名为“jsonInstance”的结构体。 int arrayLength = jsonInstance.arrayLength; for(int i=0; i<arrayLength; i++) { if(jsonInstance.array[i].type == JSON_OBJECT) // 处理JSON对象 { cJSON* jsonObject = jsonInstance.array[i].value.object; // 处理JSON对象 } else if(jsonInstance.array[i].type == JSON_ARRAY) // 处理JSON数组 { cJSON* jsonArray = jsonInstance.array[i].value.array; int arrayLength = cJSON_GetArraySize(jsonArray); for(int j=0; j<arrayLength; j++) { cJSON* jsonSubObject = cJSON_GetArrayItem(jsonArray, j); // 处理JSON子对象 } } else if(jsonInstance.array[i].type == JSON_STRING) // 处理字符串元素 { char* stringValue = jsonInstance.array[i].value.string; // 处理字符串元素 } // 处理其他元素类型 }
在上面的代码中,我们首先获取JSON实例的数组长度,并使用循环结构遍历该数组。在遍历的每个迭代中,我们使用条件语句检查元素类型,然后处理相应类型的元素。
如果元素类型为JSON对象,我们使用JSON库访问该对象,并进行一些自定义的处理。同样地,如果元素类型为JSON数组,我们使用JSON库获取该数组的长度,然后使用嵌套的循环结构遍历子元素。在遍历子元素的每个迭代中,我们使用JSON库获取该子元素对应的JSON对象,并进行一些自定义处理。
最后,如果元素类型为JSON字符串,我们使用JSON库获取该字符串,并将其传递给我们自定义的处理函数。