中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是json格式錯誤

發布時間:2020-07-13 14:27:43 來源:億速云 閱讀:328 作者:Leah 欄目:web開發

今天就跟大家聊聊有關什么是json格式錯誤,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

                                                           格式錯誤

由于json只接受utf-8編碼的字符,所以json_encode()的參數必須是utf-8編碼,否則會得到空字符或者null。當中文使用GB2312編碼,或者外文使用ISO-8859-1編碼的時候,這一點要特別注意。

$bad_json = "{ 'bar': 'baz' }";
$bad_json = '{ bar: "baz" }';
$bad_json = '{ "bar": "baz", }';

對這三個字符串執行json_decode()都將返回null,并且報錯。

第一個的錯誤是,json的分隔符(delimiter)只允許使用雙引號,不能使用單引號。第二個的錯誤是,json名值對的"名"(冒號左邊的部分),任何情況下都必須使用雙引號。第三個的錯誤是,最后一個值之后不能添加逗號(trailing comma)。

另外,json只能用來表示對象(object)和數組(array),如果對一個字符串或數值使用json_decode(),將會返回null。

格式正確,但卻報錯

第一種類型,字符編碼問題

由于json只接受utf-8編碼的字符,所以json_encode()的參數必須是utf-8編碼,否則會得到空字符或者null。當中文使用GB2312編碼,或者外文使用ISO-8859-1編碼的時候,這一點要特別注意。

第二種類型BOM問題

BOM報頭又叫UTF-8簽名,其實UTF-8  的BOM對UFT-8沒有作用,是為了支援UTF-16,UTF-32才加上的BOM,BOM簽名的意思就是告訴編輯器當前文件采用何種編碼,方便編輯器 識別,但是BOM雖然在編輯器中不顯示,但是會產生輸出,就像多了一個空行,一般的php代碼如果用記事本等軟件編輯保存過之后,在保存一個以UTF-8編碼的文件時,會在文件開始的地方插入三個不可見的字符(0xEF 0xBB  0xBF,即BOM)。它是一串隱藏的字符,用于讓記事本等編輯器識別這個文件是否以UTF-8編碼。(還不清楚為什么會在返回數據時候也自動加上了BOM報頭)。

/**
 * 去除bom報頭
 */
public static String formatString(String s) {
if (s != null) {
  s = s.replaceAll("\ufeff", "");
}
 return s;
}

看完上述內容,你們對什么是json格式錯誤有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南木林县| 正蓝旗| 澳门| 抚宁县| 西丰县| 兴文县| 同仁县| 闽清县| 海淀区| 荣昌县| 灌南县| 靖州| 德阳市| 潢川县| 周宁县| 湟中县| 闵行区| 吉木萨尔县| 泸西县| 怀柔区| 光泽县| 宁津县| 丹寨县| 志丹县| 延川县| 象州县| 大荔县| 吉首市| 泰宁县| 四平市| 涞源县| 开阳县| 临清市| 沽源县| 富宁县| 新化县| 东乌珠穆沁旗| 平邑县| 兴海县| 贵溪市| 布尔津县|