在C中,JSON轉(zhuǎn)JArray是一項(xiàng)常見的操作。JArray是JSON中的一種數(shù)據(jù)類型,它是一個(gè)數(shù)組,可以包含多個(gè)JSON對(duì)象。
// 示例JSON字符串 { "students": [ {"name": "張三", "age": 18}, {"name": "李四", "age": 20}, {"name": "王五", "age": 22} ] } // 使用cJSON庫解析JSON字符串 cJSON *root = cJSON_Parse(json_str); cJSON *students = cJSON_GetObjectItem(root, "students"); int size = cJSON_GetArraySize(students); // 將每個(gè)JSON對(duì)象轉(zhuǎn)換成JArray JArray *jarray = jarray_create(); for (int i = 0; i< size; ++i) { cJSON *student = cJSON_GetArrayItem(students, i); JObject *jobject = cJSON_ToJObject(student); jarray_add(jarray, jobject); } // 釋放cJSON對(duì)象 cJSON_Delete(root);
上述代碼示例中,使用了cJSON庫來解析JSON字符串,并使用了自定義的JArray和JObject數(shù)據(jù)類型來存儲(chǔ)解析后的JSON數(shù)據(jù)。其中,cJSON_ToJObject函數(shù)用于將cJSON對(duì)象轉(zhuǎn)換成JObject對(duì)象。這樣,就可以將JSON字符串轉(zhuǎn)換成JArray,并對(duì)其中的每個(gè)JSON對(duì)象進(jìn)行操作。
需要注意的是,在使用JArray和JObject時(shí),需要手動(dòng)分配和釋放內(nèi)存。在操作完JSON數(shù)據(jù)后,需要逐一釋放JArray數(shù)組中的每個(gè)JObject對(duì)象,并釋放JArray數(shù)組本身。