最近我在處理JSON數據時,遇到了一個奇怪的問題。當我嘗試打印JSON對象時,它們全部變成了null
,導致我無法正常操作數據。
{ "name": "張三", "age": 25, "address": { "city": "北京", "street": "長安街" } }
在上面的JSON示例中,我嘗試將其轉換為JavaScript對象,并打印其內容。
const data = '{"name": "張三", "age": 25, "address": {"city": "北京", "street": "長安街"}}'; const obj = JSON.parse(data); console.log(obj);
然而,控制臺輸出的結果卻是:
{ "name": null, "age": null, "address": { "city": null, "street": null } }
這是什么原因呢?調查一番后,我發現這個問題是由于JSON字符串中使用了單引號而不是雙引號。在JavaScript中,單引號和雙引號都可以用來表示字符串。但是在JSON中,字符串必須用雙引號包圍。
修改代碼如下:
const data = '{"name": "張三", "age": 25, "address": {"city": "北京", "street": "長安街"}}'; const obj = JSON.parse(data.replace(/'/g, '"')); console.log(obj);
使用replace()
函數將所有單引號替換為雙引號,然后再將字符串轉換為JSON對象。這樣就可以正常操作JSON數據了。
總之,如果你遇到了類似的問題,一定要檢查JSON字符串的引號使用是否正確。