1. 程式人生 > 實用技巧 >JSON.parse 方法解析純數字鍵值對報錯的解決方法

JSON.parse 方法解析純數字鍵值對報錯的解決方法

1.起因

一般json格式的key鍵都是字串,但是今天碰到一個奇葩的json格式,鍵值是純數字,,

這種用JSON.parse的原生方法解析的話會報錯,因為這個方法是嚴格按照JSON格式進行解析的,看後端的寫法是這樣

,估計也沒注意吧....真是帶來了很多麻煩

2.解決

JSON解析除了JSON.parse還有另外一種方法,直接使用eval方法解析

eval('(' + response.data + ')')

這樣解析的JSON就不會報錯,雖然eval不推薦使用,因為效率沒JSON高,而且會載入裡面的JavaScript語句,但是碰上這種情況不得不用,還是要根據具體的情景來選擇相應的技術解決.

然後程式碼的寫法就是這個樣子的

          let repData = response.data

          if (typeof repData === 'string') {
            repData = eval('(' + response.data + ')')
          }

如果axios請求後端返回的是物件的話,說明axios已經把資料解析成物件了,我們就不用做任何的處理了,如果不是物件,是字串,說明傳回來了那種奇葩格式,我們就需要判斷一下,用eval解析.