欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JSON.parse()方法轉(zhuǎn)換對(duì)象的示例以及注意事項(xiàng)

 更新時(shí)間:2023年05月18日 08:57:09   作者:FLy_鵬程萬(wàn)里  
這篇文章主要介紹了JSON.parse()方法轉(zhuǎn)換對(duì)象的示例以及注意事項(xiàng),我們可以使用 JSON.parse() 方法將數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對(duì)象,需要的朋友可以參考下

JSON.parse()

JSON 通常用于與服務(wù)端交換數(shù)據(jù)。

在接收服務(wù)器數(shù)據(jù)時(shí)一般是字符串。

我們可以使用 JSON.parse() 方法將數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對(duì)象。

語(yǔ)法

JSON.parse(text[, reviver])

參數(shù)說(shuō)明:

  • text:必需, 一個(gè)有效的 JSON 字符串。
  • reviver: 可選,一個(gè)轉(zhuǎn)換結(jié)果的函數(shù), 將為對(duì)象的每個(gè)成員調(diào)用此函數(shù)。

JSON 解析實(shí)例

例如我們從服務(wù)器接收了以下數(shù)據(jù):

{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }

我們使用 JSON.parse() 方法處理以上數(shù)據(jù),將其轉(zhuǎn)換為 JavaScript 對(duì)象:

var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');

解析前要確保你的數(shù)據(jù)是標(biāo)準(zhǔn)的 JSON 格式,否則會(huì)解析出錯(cuò)。

你可以使用我們的在線工具檢測(cè):https://c.runoob.com/front-end/53

解析完成后,我們就可以在網(wǎng)頁(yè)上使用 JSON 數(shù)據(jù)了:

<p id="demo"></p>
<script>
var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
document.getElementById("demo").innerHTML = obj.name + ":" + obj.site;
</script>

從服務(wù)端接收 JSON 數(shù)據(jù)

我們可以使用 AJAX 從服務(wù)器請(qǐng)求 JSON 數(shù)據(jù),并解析為 JavaScript 對(duì)象。

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myObj = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myObj.name;
    }
};
xmlhttp.open("GET", "/try/ajax/json_demo.txt", true);
xmlhttp.send();

從服務(wù)端接收數(shù)組的 JSON 數(shù)據(jù)

如果從服務(wù)端接收的是數(shù)組的 JSON 數(shù)據(jù),則 JSON.parse 會(huì)將其轉(zhuǎn)換為 JavaScript 數(shù)組:

實(shí)例:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myArr = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myArr[1];
    }
};
xmlhttp.open("GET", "/try/ajax/json_demo_array.txt", true);
xmlhttp.send();

異常

解析數(shù)據(jù)

JSON 不能存儲(chǔ) Date 對(duì)象。

如果你需要存儲(chǔ) Date 對(duì)象,需要將其轉(zhuǎn)換為字符串。

之后再將字符串轉(zhuǎn)換為 Date 對(duì)象。

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
var obj = JSON.parse(text);
obj.initDate = new Date(obj.initDate);
document.getElementById("demo").innerHTML = obj.name + "創(chuàng)建日期: " + obj.initDate;

我們可以啟用 JSON.parse 的第二個(gè)參數(shù) reviver,一個(gè)轉(zhuǎn)換結(jié)果的函數(shù),對(duì)象的每個(gè)成員調(diào)用此函數(shù)。

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
var obj = JSON.parse(text, function (key, value) {
    if (key == "initDate") {
        return new Date(value);
    } else {
        return value;
}});
document.getElementById("demo").innerHTML = obj.name + "創(chuàng)建日期:" + obj.initDate;

解析函數(shù)

JSON 不允許包含函數(shù),但你可以將函數(shù)作為字符串存儲(chǔ),之后再將字符串轉(zhuǎn)換為函數(shù)。

var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}';
var obj = JSON.parse(text);
obj.alexa = eval("(" + obj.alexa + ")");
document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();

不建議在 JSON 中使用函數(shù)。

瀏覽器支持

主流瀏覽器都支持 JSON.parse() 函數(shù):

  • Firefox 3.5
  • Internet Explorer 8
  • Chrome
  • Opera 10
  • Safari 4

到此這篇關(guān)于JSON.parse()方法轉(zhuǎn)換對(duì)象的示例以及注意事項(xiàng)的文章就介紹到這了,更多相關(guān)JSON.parse()的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解讀JSON的三種格式

    解讀JSON的三種格式

    這篇文章主要介紹了解讀JSON的三種格式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 解決json日期格式問(wèn)題的3種方法

    解決json日期格式問(wèn)題的3種方法

    這篇文章主要介紹了解決json日期格式問(wèn)題的3種方法 ,需要的朋友可以參考下
    2014-02-02
  • 理解JSON:3分鐘課程

    理解JSON:3分鐘課程

    如果你跟我一樣(我擔(dān)心你就是),那么,到目前為止,這應(yīng)該是你對(duì)JSON的經(jīng)驗(yàn)
    2011-10-10
  • 如何實(shí)現(xiàn)json數(shù)據(jù)可視化詳解

    如何實(shí)現(xiàn)json數(shù)據(jù)可視化詳解

    最近在工作中開(kāi)發(fā)一個(gè)內(nèi)部功能時(shí)碰到的一個(gè)需求,要把json數(shù)據(jù)在頁(yè)面上展示出來(lái),平時(shí)瀏覽器會(huì)安裝jsonView這樣的擴(kuò)展來(lái)看json數(shù)據(jù),但是程序要用到的話該怎么辦呢?今天在網(wǎng)上搜索的時(shí)候,發(fā)現(xiàn)了這個(gè)小技巧,分享給大家,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧
    2016-11-11
  • Json對(duì)象替換字符串占位符實(shí)現(xiàn)代碼

    Json對(duì)象替換字符串占位符實(shí)現(xiàn)代碼

    實(shí)現(xiàn)根據(jù)提供的Json對(duì)象去替換字符串中相應(yīng)的占位符。需要的朋友可以參考下。
    2010-11-11
  • JS操作JSON常用方法(10w閱讀)

    JS操作JSON常用方法(10w閱讀)

    工作中做了幾款自動(dòng)化測(cè)試工具都是跟日志讀取相關(guān),日志格式又大多數(shù)都是JSON,所以這里把常用的JS操作JSON的方法做了總結(jié),需要的朋友可以參考下
    2020-12-12
  • json的定義、標(biāo)準(zhǔn)格式及json字符串檢驗(yàn)

    json的定義、標(biāo)準(zhǔn)格式及json字符串檢驗(yàn)

    今天分享和總結(jié)一些json的基本定義、格式、字符串的格式,以及在做測(cè)試的時(shí)候使用json時(shí)做一些簡(jiǎn)單的校驗(yàn)
    2014-05-05
  • Jquery+asp.net后臺(tái)數(shù)據(jù)傳到前臺(tái)js進(jìn)行解析的方法

    Jquery+asp.net后臺(tái)數(shù)據(jù)傳到前臺(tái)js進(jìn)行解析的方法

    我們經(jīng)常用jquery讀取后臺(tái)數(shù)據(jù),后臺(tái)返回?cái)?shù)據(jù)。后臺(tái)數(shù)據(jù)格式就有很多了,但是js里面沒(méi)有什么類型之分
    2014-05-05
  • XENON基于JSON變種

    XENON基于JSON變種

    JSON已經(jīng)成為了現(xiàn)在互聯(lián)網(wǎng)上輕量級(jí)數(shù)據(jù)傳輸?shù)氖聦?shí)標(biāo)準(zhǔn),現(xiàn)在已經(jīng)很少聽(tīng)說(shuō)哪個(gè)流行的web API不支持JSON了,而很多內(nèi)部或者專用的應(yīng)用程序也都在使用JSON來(lái)傳遞數(shù)據(jù)。
    2010-07-07
  • JSON字符串和對(duì)象之間的轉(zhuǎn)換詳解

    JSON字符串和對(duì)象之間的轉(zhuǎn)換詳解

    這篇文章主要介紹了JSON字符串和對(duì)象之間的轉(zhuǎn)換詳解,需要的朋友可以參考下
    2015-05-05

最新評(píng)論