今天同事問請求公司內部接口返回的json無法用json_decode解析,然后我讓他把請求結果寫入文件,然后文件發給我試試。
在打開這個文件之后我發現第一句話是
這是很令人奇怪的,為什么會出現一個雙引號在開頭呢?我看了一下結尾 也有這個雙引號。於是我首先想到了用trim去掉兩邊的雙引號,代碼如下:
如此操作后,發現仍然不能解析,我把這些數據拷貝到在線解析json的網站中,發現他們是可以解析的,這就很奇怪了,為什么會這樣呢?
仔細觀察了一下json結構體后,我懷疑是鍵中的雙引號被反斜杠轉義后導致的,於是,處理這個反斜杠即可,然而json編碼中中文\u開頭的也有反斜杠於是,要尋找特征進行替換。
代碼如下:
這樣一來,就替換掉了鍵和值兩邊的反斜杠而不影響內容,於是,再次json_decode后,發現可以解析了。
代碼效果如下:
另外,LHC同學看我好久沒更新博客,是不是怕我出現什么事情啊,哈哈哈。
良駒垂暮望蒼天,
婆娑淚眼留人間。
少壯莫懼艱難險,
紅鯉躍門笑開顏!