jQuery.parseJSON() 函式詳解
jQuery.parseJSON()函式用於將格式完好的JSON字串轉為與之對應的JavaScript物件。
所謂”格式完好”,就是要求指定的字串必須符合嚴格的JSON格式,例如:屬性名稱必須加雙引號、字串值也必須用雙引號。
如果傳入一個格式不”完好”的JSON字串將丟擲一個JS異常,例如:以下字串均符合JSON格式,但它們不是格式完好的JSON字串(因此會丟擲異常):
// 以下均是字串值,省略了兩側的引號,以便於展現內容
{id: 1} // id是屬性名稱,必須加雙引號
{'id': 1} // id是屬性名稱,必須用雙引號(不能用單引號)
{"name": 'CodePlayer'} // name屬性的值是字串,必須用雙引號(不能用單引號)
JSON標準不允許字串中出現”控制字元”,例如:一個Tab或換行符。
$.parseJSON('{"name": "Code\tPlayer\n"}'); // 多數情況下,它會丟擲一個錯誤,因為JS解析器會將字串中的\t或\n等轉義直接視作字面值,起到Tab或換行的效果。
//正確寫法應該如下(使用兩個反斜槓,以免被JS解析器直接轉義\t或\n):
$.parseJSON('{"name": "Code\\tPlayer\\n"}');
如果瀏覽器提供了一個本地的JSON.parse()方法,則jQuery將使用它來解析JSON字串。
在jQuery 1.9之前(不含1.9):如果傳入一個空字串、null或undefined,該函式將返回null,而不是丟擲一個錯誤,即使它不是有效的JSON字串。
該函式屬於全域性的jQuery物件。
語法
jQuery 1.4.1 新增該靜態函式。
jQuery.parseJSON( jsonString ) 引數
引數 描述 jsonString String型別需要解析並轉為JS物件的JSON格式字串。 返回值
jQuery.parseJSON()函式的返回值為任意型別,返回解析指定JSON字串後的JavaScript表示。
示例&說明
以下是與jQuery.parseJSON()函式相關的jQuery示例程式碼,以演示jQuery.parseJSON()函式的具體用法:
var result1 = $.parseJSON( "{}" ); // 一個空的Object物件
var result2 = $.parseJSON( '{ "name": "CodePlayer", "age": 1 }' ); // 一個Object物件
alert( result2.name ); // CodePlayer
var result3 = $.parseJSON( '[ 1, true, "CodePlayer" ]' ); // 一個Object物件
alert( result3[2] ); // CodePlayer
var result4 = $.parseJSON( 'true' ); // 布林值:true
var result5 = $.parseJSON( 'null' ); // null
var result6 = $.parseJSON( '0' ); // 整數:0
var result7 = $.parseJSON( '"專注於程式設計開發技術分享"' ); // 字串值:專注於程式設計開發技術分享
var result8 = $.parseJSON( "\"專注於程式設計開發技術分享\"" ); // 字串值:專注於程式設計開發技術分享
/* 以下均是無效的JSON字串或非常規的引數值 */
var result9 = $.parseJSON( 100 ); // 1.9之前返回null;1.9+返回100
var result10 = $.parseJSON( 1.23 ); // 1.9之前返回null;1.9+返回1.23
var result11 = $.parseJSON( true ); // 1.9之前返回null;1.9+返回true
var result12 = $.parseJSON( null ); // 返回null
var result13 = $.parseJSON( "" ); // 1.9之前返回null;1.9+丟擲錯誤
var result14 = $.parseJSON( undefined ); // 1.9之前返回null;1.9+丟擲錯誤
var result15 = $.parseJSON( "undefined" ); // 丟擲錯誤
var result16 = $.parseJSON( "12x;xx'無效的JSON字串x4546" ); // 丟擲錯誤
var result17 = $.parseJSON( '{ name: "CodePlayer", age: 1 }' ); // 丟擲錯誤
var result18 = $.parseJSON( '{ "name": \'CodePlayer\', "age": 1 }' ); // 丟擲錯誤
var result19 = $.parseJSON( '{ "name": "Code\tPlayer\n" }' ); // 丟擲錯誤
相關推薦
jQuery.parseJSON() 函式詳解
jQuery.parseJSON()函式用於將格式完好的JSON字串轉為與之對應的JavaScript物件。 所謂”格式完好”,就是要求指定的字串必須符合嚴格的JSON格式,例如:屬性名稱必須加雙引號、字串值也必須用雙引號。 如果傳入一個格式不”完好”的JS
jQuery.serializeArray() 函式詳解
轉載http://www.365mini.com/page/jquery-serializearray.htm 描述 serializeArray()函式用於序列化一組表單元素,將表單內容編碼為一個JavaScript陣列。serializeArray()函式常用於將表單
jQuery.off() 函式詳解
off()函式用於移除元素上繫結的一個或多個事件的事件處理函式。 off()函式主要用於解除由on()函式繫結的事件處理函式。 該函式屬於jQuery物件(例項)。 語法 jQuery 1.7 新增該函式。其主要有以下兩種形式的用法: 用法一: jQueryOb
jQuery.extend 函式詳解
JQuery的extend擴充套件方法: Jquery的擴充套件方法extend是我們在寫外掛的過程中常用的方法,該方法有一些過載原型,在此,我們一起去了解了解。 一、
jQuery.extend 函式詳解
JQuery的extend擴充套件方法: Jquery的擴充套件方法extend是我們在寫外掛的過程中常用的方法,該方法有一些過載原型,在此,我們一起去了解了解。 一、Jquery的擴充套件方法原型是: extend(dest,src1,
jQuery.attr() 函式詳解
attr()函式用於設定或返回當前jQuery物件所匹配的元素節點的屬性值。 該函式屬於jQuery物件(例項)。如果需要刪除DOM元素節點的屬性,請使用removeAttr()函式。 語法 attr()函式有以下兩種用法: 用法一: jQueryObject.a
jQuery.extend 函式詳解,一般用於封裝JQ外掛
JQuery的extend擴充套件方法: Jquery的擴充套件方法extend是我們在寫外掛的過程中常用的方法,該方法有一些過載原型,在此,我們一起去了解了解。 一、Jquery的
ajax error 函式詳解(jquery)
文章來自:原始碼線上https://www.shengli.me/jquery/186.html error函式 返回的引數有三個: 1.5版本以後返回的是jqXHR物件,該物件不僅包括XMLHttpRequest物件,還包含其他更多詳細屬性和資訊: 這裡主
jquery的ajax方法的回撥函式詳解
前言 最近學習jquery的$.post(),$.get(),$("#div1").load(),$.ajax()方法,發現確實很方便,但是對函式返回值確不理解,後面自己做了幾個實驗,總結後把結論整理
jquery選擇器詳解
orm visible type nbsp line style .html box con 一、基本選擇器 #box .box1 div $("#box, .box1"); 二、層級選擇器 $("div p"); //div中的所有p $("div > p");
常見26個jquery使用技巧詳解
inside current mov pos external from any llb tar 本文列出jquery一些應用小技巧,比如有禁止右鍵點擊、隱藏搜索文本框文 字、在新窗口中打開鏈接、檢測瀏覽器、預加載圖片、頁面樣式切換、所有列等高、動態控制頁面字體大小、獲
MySQL 的函式詳解!
完整性約束 什麼是資料完整性 資料的準確性和可靠性。 分類 實體完整性 記錄準確的。(記錄不能重複) 主鍵約束: 不能重複,不能為空。 Primary key 欄位唯一的。 不能使用業務欄位。 無意義的
Vue生命週期函式詳解
vue例項的生命週期 1 什麼是生命週期(每個例項的一輩子) 概念:每一個Vue例項建立、執行、銷燬的過程,就是生命週期;在例項的生命週期中,總是伴隨著各種事件,這些事件就是生命週期函式; 生命週期:例項的生命週期,就是一個階段,從建立到執行,再到銷燬的階段; 生命週期函式:在例項的生命週
goinit函式詳解
init()函式會在每個包完成初始化後自動執行,並且執行優先順序比main函式高。init 函式通常被用來: 對變數進行初始化 檢查/修復程式的狀態 註冊 執行一次計算 包的初始化 為
linux 核心 - ioctl 函式詳解
1. 概念 ioctl 是裝置驅動程式中裝置控制介面函式,一個字元裝置驅動通常會實現裝置開啟、關閉、讀、寫等功能,在一些需要細分的情境下,如果需要擴充套件新的功能,通常以增設 ioctl() 命令的方式實現。 在檔案 I/O 中,ioctl 扮演著重要角色,本文將以驅動開發為側重
assert.ifError()函式詳解
assert.ifError(value) 如果 value 為真值時,丟擲 value。當測試在回撥函式裡的引數 error 時非常有用。 const assert = require('assert'); assert.ifError(0); // OK assert.ifError(1); //
assert.throws()函式詳解
assert.throws(block[, error][, message]) 期望 block 函式丟擲一個錯誤。 如果指定 error,它可以是一個建構函式、正則表示式或驗證函式。 如果指定 message,如果 block 因為失敗而丟擲錯誤,message 會是由 AssertionError 提
Swoole Echo伺服器隨意搭建 及set函式詳解
<?php //Server Class Server { private $serv; /** * 連結swoole伺服器 * Server constructor. */ public function __construct()
深入理解計算機系統配套實驗(一) data lab 函式詳解
/* 135. * bitAnd - x&y using only ~ and | 136. * Example: bitAnd(6, 5) = 4 137. * Legal ops: ~ | 138. * Max ops: 8 139. *
fcntl函式詳解
功能描述:根據檔案描述詞來操作檔案的特性。 #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd); int fcntl(i