1. 程式人生 > >jQuery.parseJSON() 函式詳解

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