C JSON解析rb是一個功能強大的庫,它被廣泛地應用在各種應用程序中。本文將介紹如何使用C JSON解析rb來解析JSON數據。
// 示例JSON數據 json_data = '{ "name": "John", "age": 30, "address": { "street": "123 Main St.", "city": "Anytown", "state": "CA", "zip": 12345 }, "phone_numbers": [ {"type": "home", "number": "555-555-1212"}, {"type": "work", "number": "555-555-1234"} ] }'; // 解析JSON數據 json_object *root = json_tokener_parse(json_data); // 獲取值 const char *name = json_object_get_string(json_object_object_get(root, "name")); int age = json_object_get_int(json_object_object_get(root, "age")); json_object *address = json_object_object_get(root, "address"); const char *street = json_object_get_string(json_object_object_get(address, "street")); const char *city = json_object_get_string(json_object_object_get(address, "city")); const char *state = json_object_get_string(json_object_object_get(address, "state")); int zip = json_object_get_int(json_object_object_get(address, "zip")); json_object *phone_numbers = json_object_object_get(root, "phone_numbers"); int array_len = json_object_array_length(phone_numbers); for (int i = 0; i< array_len; i++) { json_object *phone_number = json_object_array_get_idx(phone_numbers, i); const char *type = json_object_get_string(json_object_object_get(phone_number, "type")); const char *number = json_object_get_string(json_object_object_get(phone_number, "number")); } // 釋放資源 json_object_put(root);
代碼中使用的json_tokener_parse函數將JSON字符串解析為json_object對象,通過json_object_object_get函數獲取對象的值。由于JSON數據的一些值可能是數組或嵌套的對象,因此需要使用json_object_array_*函數和json_object_object_*函數來獲取其中的值。最后,通過json_object_put函數釋放資源。