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解析.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM