最近在開發一個項目,需要將一個C語言字符串轉換成JSON格式,但一直無法正確地轉換,遇到了一些問題。
首先,我使用了一個著名的JSON解析庫,但是它的使用有一些限制,例如它不能很好地處理數組和嵌套結構,因此我選擇了使用自己編寫的JSON轉換代碼。
int main() { char* str = "{\"name\":\"Lucas\",\"age\":28}"; json_t* json = json_parse(str); if (json) { printf("name: %s, age: %d\n", json_get_string(json, "name"), json_get_int(json, "age")); json_free(json); } else { printf("parse error!\n"); } return 0; }
代碼看起來簡單明了,但是在實際使用中卻總是出錯。我經過了多次的檢查和排錯,最后發現問題出在了字符串轉換上。
char* str = "{\"name\":\"Lucas\",\"age\":28}";
這里我使用了雙引號來包含字符串,但是在JSON中,字符串應該是使用單引號來包含的。因此正確的寫法應該是這樣:
char* str = "{'name':'Lucas','age':28}";
經過這一改進后,我的代碼就可以正確地將字符串轉換成JSON格式了。