`
langgufu
  • 浏览: 2307107 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSON到对象的转换(反序列化)方法,EXT.decode()和EXT.encode()方法(转帖)

阅读更多

【原】基础篇:第四篇,Ext中有两个很重要的方法,一个是decode;一个是encode. 在述说这个例子之前,我假想你已经知道什么是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字符串转换成对象后,通过对象访问属性生成的消息框

 

//下面是将上面生成的对象又转换成json字符串后生成的消息框



具体看下示例吧

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testDecode.aspx.cs" Inherits="Test.Example.hello.testDecode" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<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()方法的完美作用了.


用图片说明吧

//下面是将json字符串转换成对象后,通过对象访问属性生成的消息框 

 
//下面是将上面生成的对象又转换成json字符串后生成的消息框



 

分享到:
评论

相关推荐

    Json反序列化

    反序列化是将JSON格式的字符串转换为程序可直接使用的对象的过程,这对于处理网络请求返回的数据至关重要。在本篇文章中,我们将深入探讨JSON反序列化的概念、原因以及在实际开发中的应用。 一、什么是JSON反序列化...

    C# JSON 编码解码

    string jsonCode = JSON.Encode(v1); Console.WriteLine("jsonCode=" + jsonCode); //jsonCode 为格式化好的JSON字符串: { "x":1.23, "y":4.56 } //解码范例: Vec2 v2 = JSON.Decode(jsonCode); Console....

    Vbs序列化/反序列化Json基类

    Vbs序列化/反序列化Json基类 可直接使用,bug已被我修复 Example: Dim fso, json, str, o, i Set json = New VbsJson Set fso = WScript.CreateObject("Scripting.Filesystemobject") str = fso.OpenTextFile&#40;...

    Ext常用方法录.pdf

    15. Ext.encode(o):将对象转换为JSON字符串。 Ext.encode({a: 1, b: 2}) =&gt; "{\"a\":1,\"b\":2}" 16. Ext.decode(o):将JSON字符串转换为对象。 Ext.decode("{\"a\":1,\"b\":2}") =&gt; {a: 1, b: 2} 17. Ext....

    Ext常用方法录.docx

    * `Ext.encode(o)`: 将对象转换为 JSON 字符串。 * `Ext.decode(o)`: 将 JSON 字符串转换为对象。 * `Ext.copyTo(dest, source, names)`: 拷贝 source 中的属性到 dest 中。 字符串操作 Ext 提供了一些方法来操作...

    Ext.js核心函数详解.docx

    7. `Ext.decode(String json) / Ext.encode(Object obj)`: `Ext.decode`将JSON字符串转换为JavaScript对象,`Ext.encode`则将JavaScript对象转换为JSON字符串。 8. `Ext.util.Format.escapeRegex(String value)`: ...

    PHP json_encode() 和 json_decode()

    在PHP编程语言中,`json_encode()` 和 `json_decode()` 是两个非常重要的函数,它们用于在PHP和JSON数据格式之间进行转换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于人阅读和编写,...

    iOS Json 实体类序列化及反序列化

    反序列化是将JSON字符串转换回对象的过程。同样,我们使用`NSJSONSerialization`或Swift的`JSONDecoder`进行操作。 #### 1. Objective-C ```objc // JSON字符串 NSString *jsonString = @"{\"name\":\"张三\",\...

    JS的encodeURI和java的URLDecoder.decode使用介绍

    比如http://localhost:8080/template_1/login.action?user=张三 可以使用js的encodeURI的URLDecoder.decode一起使用一起来把url加密下 (1)JS在页面上把数据var val = encodeURI(encodeURI(“要传到服务器端的是值”)...

    java中URLEncoder.encode与URLDecoder.decode处理url特殊参数的方法

    `URLEncoder.encode()` 和 `URLDecoder.decode()` 是Java标准库中的两个关键方法,分别用于对URL参数进行编码和解码,以确保数据能够正确无误地在网络间传输。 **`URLEncoder.encode()`** 方法接受两个参数:需要...

    json_decode 索引为数字时自动排序问题解决方法.docx

    在给定的例子中,通过`json_encode`函数将一个包含日期和股票信息的复杂结构转换成JSON字符串,并尝试用`json_decode`进行解码。然而,在这个过程中,发现了一些问题: 原始的JSON字符串如下: ```json { "code": ...

    swift-HandyJSON是一个Swift编写的JSON-对象间序列化反序列化库用法简单

    在实际开发过程中,数据交换通常涉及JSON格式,因此JSON序列化和反序列化是必不可少的技能。`HandyJSON`就是一个针对Swift设计的轻量级库,用于简化JSON与Swift对象之间的转换过程。本文将深入探讨`HandyJSON`库的...

    PHP json_encode与json_decode.rar

    在PHP中,`json_encode`和`json_decode`是两个非常重要的...同时,这两个函数也是PHP进行数据序列化和反序列化的重要工具,尤其在存储或缓存数据时很有用。了解并熟练使用这两个函数,对于提升PHP开发效率至关重要。

    jQuery JSON with PHP json_encode and json_decode

    "jQuery JSON with PHP json_encode and json_decode"这个主题涉及到如何利用JSON(JavaScript Object Notation)这一轻量级的数据交换格式,结合PHP的`json_encode`和`json_decode`函数,实现前后端之间的数据通信...

    Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别

    (1)Ext.FormPanel f.getForm().submit({ url:”……”, params:{ XX:xx …..} success: function (c,v,e) { //e: 触发事件 var json=Ext.decode(v.response.responseText); }, failure:function(c,v,e){} }) (2)Ext....

    Ext.js核心函数详解.pdf

    8. `Ext.urlEncode(Object o)`: 将一个JSON对象转换为URL查询字符串,支持为同一个键设置多个值,返回的结果是URL编码过的参数串。 9. `Ext.urlDecode(String string, [Boolean overwrite])`: 将URL查询字符串解码...

    网址编码解码,jQuery版Url.encode,Url.decode,Url.parse.rar

    网址编码解码,jQuery版Url.encode,Url.decode,Url.parse,一个来自jQuery的URL Decoder解码、编码插件,为你的URL安全定义一道安全防线,示例文件本身就是一个值得学习的实例,自带的示例将告诉你如何使用这款URL...

    php中json_decode()和json_encode()的使用方法.docx

    在PHP中,`json_decode()`和`json_encode()`是两个非常重要的函数,它们主要用于JSON(JavaScript Object Notation)数据格式的编码与解码。JSON是一种轻量级的数据交换格式,因其简洁、易于阅读和编写,同时也容易...

    iOS归档(序列化与反序列化)

    `NSKeyedArchiver` 负责将对象序列化成NSData,而 `NSKeyedUnarchiver` 则负责将NSData反序列化回原来的对象。 #### 2. 序列化过程 要序列化一个对象,该对象必须遵循 `NSCoding` 协议。该协议定义了两个必须实现...

Global site tag (gtag.js) - Google Analytics