C語言中,JSON(JavaScript Object Notation)數據類型的互相轉換是非常常見的操作。下面我們來分別介紹C語言與JSON中各種數據類型之間互換操作的實現。
1.將字符串轉換為JSON
//JSON字符串 char *str = '{"name":"Lucy", "age":20, "sex":"female"}'; //將字符串轉換為JSON對象 json_object *obj = json_tokener_parse(str);
2.將JSON轉換為字符串
//JSON對象轉換為字符串 char *json_str = json_object_to_json_string(obj);
3.獲取字符串中的某個值
json_object *name = NULL; //從JSON對象中獲取"name"對應的值 json_object_object_get_ex(obj, "name", &name); //將獲取到的值轉換為字符串 char *name_str = json_object_get_string(name);
4.獲取數字類型的值
json_object *age = NULL; //從JSON對象中獲取"age"對應的值 json_object_object_get_ex(obj, "age", &age); //將獲取到的值轉換為int類型 int age_num = json_object_get_int(age);
5.獲取布爾類型的值
json_object *is_student = NULL; //從JSON對象中獲取"is_student"對應的值 json_object_object_get_ex(obj, "is_student", &is_student); //將獲取到的值轉換為bool類型 bool is_student_bool = json_object_get_boolean(is_student);
6.將字符串數組轉換為JSON數組
//字符串數組 char *str_arr[] = {"小明", "小紅", "小剛"}; //創建JSON數組 json_object *arr = json_object_new_array(); //遍歷字符串數組并將其轉換為JSON對象 for(int i = 0; i< 3; i++){ //創建JSON對象 json_object *obj = json_object_new_object(); //添加鍵值對 json_object_object_add(obj, "name", json_object_new_string(str_arr[i])); //將JSON對象放入JSON數組中 json_object_array_add(arr, obj); }
7.將JSON數組轉換為字符串數組
//獲取JSON數組長度 int arr_len = json_object_array_length(arr); //遍歷JSON數組并將其轉換為字符串 for(int i = 0; i< arr_len; i++){ //獲取JSON對象 json_object *obj = json_object_array_get_idx(arr, i); //獲取"name"對應的值 json_object *name = NULL; json_object_object_get_ex(obj, "name", &name); //將獲取到的值轉換為字符串 char *name_str = json_object_get_string(name); }
以上就是C語言與JSON中各種數據類型之間互換操作的介紹,希望對大家有所幫助。