天天看點

EXTJS學習系列基礎篇:第四篇(轉載)作者殷良勝,Ext中有兩個很重要的方法,一個是decode;一個是encode.顧名思義,一個是編碼,一個是解碼,你難道真的這麼想嗎?嚴格的說,一個是将json字元串轉換成對象;一個是将對象轉換成json字元串

在述說這個例子之前,我假想你已經知道什麼是Json資料了,那麼在這裡在溫習一下吧:

JSON(JavaScript Object Notation) 是一種資料交換格式,采用完全獨立于語言的文本格式;

JSON建構于兩種結構:“名稱/值”對的集合和值的有序清單

下面詳細說明下:

“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被了解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵清單(keyed list),或者關聯數組 (associative array)。 

值的有序清單(An ordered list of values)。在大部分語言中,它被了解為數組(array)。 

JSON具有以下這些形式: 

對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括号)開始,“}”(右括号)結束。每個“名稱”後跟一個“:”(冒号);“‘名稱/值’ 對”之間使用“,”(逗号)分隔。 

數組是值(value)的有序集合。一個數組以“[”(左中括号)開始,“]”(右中括号)結束。值之間使用“,”(逗号)分隔。 

值(value)可以是雙引号括起來的字元串(string)、數值(number)、 ture、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。 

字元串(string)是由雙引号包圍的任意數量Unicode字元的集合,使用反斜線轉義。一個字元(character)即一個單獨的字元串(character string)。 

空白可以加入到任何符号之間

------------------------以下來自百度的最新報告

下面介紹Ext中兩個很重要的方法,其實,Ext中沒有多餘的方法,每個方法都能夠恰當好處的發揮它的作用,這裡指它很重要,是因為它們太常用了,尤其是在與資料庫交換資料的時候

Ext中有兩個很重要的方法,一個是decode;一個是encode.顧名思義,一個是編碼,一個是解碼,你難道真的這麼想嗎?

嚴格的說,一個是将json字元串轉換成對象;一個是将對象轉換成json字元串

下面這個示例主要介紹的是Ext.decode()和Ext.encode()的用法,其中使用到了json格式的串,首先是用到了Ext.decode()方法,将json格式的串轉換成對象,然後通過對象通路對象所包含的各個屬性的值,通過消息框把它們顯示出來;之後在用Ext.encode()将已經生成的對象轉換成開始定義的json格式的串,也通過消息框把它們顯示出來,加了一個函數,使得在第一個消息框彈出3秒鐘後再彈出第二個消息框

用圖檔說明吧

 //下面是将json字元串轉換成對象後,通過對象通路屬性生成的消息框

EXTJS學習系列基礎篇:第四篇(轉載)作者殷良勝,Ext中有兩個很重要的方法,一個是decode;一個是encode.顧名思義,一個是編碼,一個是解碼,你難道真的這麼想嗎?嚴格的說,一個是将json字元串轉換成對象;一個是将對象轉換成json字元串

 //下面是将上面生成的對象又轉換成json字元串後生成的消息框

EXTJS學習系列基礎篇:第四篇(轉載)作者殷良勝,Ext中有兩個很重要的方法,一個是decode;一個是encode.顧名思義,一個是編碼,一個是解碼,你難道真的這麼想嗎?嚴格的說,一個是将json字元串轉換成對象;一個是将對象轉換成json字元串

具體看下示例吧

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testDecode.aspx.cs" Inherits="Test.Example.hello.testDecode" %>

<head runat="server">

    <title>測試Ext.decode()和Ext.encode()方法</title>

    <link rel="Stylesheet" type="text/css" href="http://www.cnblogs.com/ExtJS/resources/css/ext-all.css" />

    <link rel="Stylesheet" type="text/css" href="http://www.cnblogs.com/ExtJS/resources/css/xtheme-purple.css" />

    <script type="text/javascript" src="http://www.cnblogs.com/ExtJS/adapter/ext/ext-base.js"></script>

    <script type="text/javascript" src="http://www.cnblogs.com/ExtJS/ext-all.js"></script>

    <script type="text/javascript" src="http://www.cnblogs.com/ExtJS/ext-lang-zh_CN.js"></script>  

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <script type="text/javascript">

 function ready()

    {

        //再用一個示例說明下如何使用decode和encode,現在我們已經知道什麼是json資料格式了,也知道它的作用和文法了

        //現在我們就開始演練吧

        //先使用decode方法,這個方法是将json字元串轉換成對象的

        //第一步:先定義一個json字元串吧

        var 劉天王 = "{姓名:'劉德華',性别:'男',老家:'香港'}";

        //第二步:現在我們要把劉天王轉換成對象了

        var who = Ext.decode(劉天王);

        //第三步:who成了對象後就相當于是類的對象了,裡面的姓名,性别,老家都成了who的屬性了,現在知道怎麼通過對象通路屬性了吧

        var name = who.姓名;    //擷取who對象的[姓名]屬性

        var sex = who.性别;     //擷取who對象的[性别]屬性

        var home = who.老家;    //擷取who對象的[老家]屬性

        //第四步:下面将擷取的資訊組合起來

        var result = "劉天王資料的資訊:姓名是--"+name + ";性别--"+sex+";老家--"+home;

        //第五步:我們把擷取的who對象的資訊用彈出消息的方式顯示出來吧

        Ext.Msg.alert("劉天王的資料資訊",result);

        //以上就是将一個json字元串轉換成對象後,再逐個通路對象的屬性的示例

        //下面使用encode方法

        //encode方法很簡單了,就是将上面生成的who對象再轉換成第一步定義的json字元串

        //定義一個到時間執行的函數

        var getJson = function()

        {

            //你完全可以把這段寫在函數外面,之是以包含在裡面純屬是為了在顯示第一個消息框後再隔3秒顯示下面這個消息視窗

            var jsonStr = Ext.encode(who);

            //我們還是通過彈出消息的方式把這個json字元串顯示出來吧

            Ext.Msg.alert("jsonStr資訊内容",jsonStr);

        };

        //下面這個方法意思是:在3秒之後會調用函數getJson執行裡面包含的腳本

        setTimeout(getJson,3000); 

        //補充點東西

        //Ext.decode()和Ext.encode()分别是是 Ext.util.JSON.decode()和Ext.util.JSON.encode的簡寫

    }

    Ext.onReady(ready);

    </script>

    </div>

    </form>

</body>

</html>

現在這個例子就可以說明Ext.decode()和Ext.encode()方法的完美作用了.

EXTJS學習系列基礎篇:第四篇(轉載)作者殷良勝,Ext中有兩個很重要的方法,一個是decode;一個是encode.顧名思義,一個是編碼,一個是解碼,你難道真的這麼想嗎?嚴格的說,一個是将json字元串轉換成對象;一個是将對象轉換成json字元串
EXTJS學習系列基礎篇:第四篇(轉載)作者殷良勝,Ext中有兩個很重要的方法,一個是decode;一個是encode.顧名思義,一個是編碼,一個是解碼,你難道真的這麼想嗎?嚴格的說,一個是将json字元串轉換成對象;一個是将對象轉換成json字元串

本文轉自溫景良部落格園部落格,原文連結:http://www.cnblogs.com/wenjl520/archive/2008/11/03/1325538.html,如需轉載請自行聯系原作者