C字符串JSON轉對象數組是一種很實用的技巧,可以在數據處理中起到很大的作用。
首先,我們需要明確什么是C字符串JSON。
char json[] = "{\"name\":\"Tom\",\"age\":18}";
可以看到,上面的字符串就是一個C字符串JSON,它是用一組鍵值對表示一個對象,鍵與值之間使用冒號分隔,每個鍵值對之間使用逗號隔開,對象整體使用花括號包裹。
接下來,我們需要將C字符串JSON轉換為對象數組。這需要使用到json-c庫,我們需要通過安裝該庫來實現相關功能。
#include... struct json_object *parsed_json; parsed_json = json_tokener_parse(json);
使用json-c庫中的json_tokener_parse函數,可以將C字符串JSON轉換為一個json_object對象。
完成了轉換之后,下一步就是將json_object對象轉換為數組了。
struct json_object *name; struct json_object *age; json_object_object_get_ex(parsed_json, "name", &name); json_object_object_get_ex(parsed_json, "age", &age); printf("Name: %s\n", json_object_get_string(name)); printf("Age: %d\n", json_object_get_int(age));
我們可以先通過json_object_object_get_ex函數獲取json_object對象中對應的鍵值,然后通過json_object_get_string和json_object_get_int函數獲取對應的字符串和數字。
最后,需要注意,在使用完json_object對象之后,需要手動釋放內存。
json_object_put(parsed_json);
總體來說,通過C字符串JSON轉對象數組的方式,可以很方便地從JSON字符串中獲取需要的數據。