zoukankan      html  css  js  c++  java
  • JSON进阶一初识JSON

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

    上述的JSON,是我网上找来的,而我理解的JSON是一种以键值对形式描述的数据结构,他可以等同于后台的类。

    例如:我们在后台有个People类,以C#为例:

    public class People {
            
    /**//// <summary>
            
    /// 姓名
            
    /// </summary>
            public string name;
            
    /**//// <summary>
            
    /// 性别
            
    /// </summary>
            public byte sex;
            
    /**//// <summary>
            
    /// 出生日期
            
    /// </summary>
            public DateTime birth;
    }

    而用JSON方式描述这个People可以表现为:var People = {name:'',sex:0,birth:''};

    那如何描述集合那?例如: 

    List<People> pList = new List<People>(); 。

    JSON的表现形式为:

    [{name:'张三',sex:1,birth:'2008-10-01'},{name:'李四',sex:2,birth:2009-01-01}]

    如此使用JSON就能表现出各种形式的二维表结构。

    每个人都需要上学,都有自己的班级例如:

    public class People {
            
    /// <summary>
            
    /// 姓名
            
    /// </summary>
            public string name;
            
    /// <summary>
            
    /// 性别
            
    /// </summary>
            public byte sex;
            
    /// <summary>
            
    /// 出生日期
            
    /// </summary>
            public DateTime birth;
            
    /// <summary>
            
    /// 班级
            
    /// </summary>
            public Classes classes;
        }

        
    public class Classes {
            
    /// <summary>
            
    /// 班级编号
            
    /// </summary>
            public int ID;
            
    /// <summary>
            
    /// 班级人数
            
    /// </summary>
            public int Count;
    }

    我们用JSON去表示这样的结构:

    var classes = {ID:'',Count:''}

    var People = {name:'',sex:'',birth:'',classes:classes};

    以此类推,我们可以用JSON表现出更复杂的后台类结构:

    即使是方法,构造函数也一样可以:

    例如:

    public class People {
            
    /// <summary>
            
    /// 人类的构造函数
            
    /// </summary>
            
    /// <param name="cls">班级</param>
            public People(Classes cls){
                
    this.classes = cls;
            }

            
    /// <summary>
            
    /// 姓名
            
    /// </summary>
            public string name;
            
    /// <summary>
            
    /// 性别
            
    /// </summary>
            public byte sex;
            
    /// <summary>
            
    /// 出生日期
            
    /// </summary>
            public DateTime birth;
            
    /// <summary>
            
    /// 班级
            
    /// </summary>
            public Classes classes;
            
    /// <summary>
            
    /// 吃饭方法
            
    /// </summary>
            public void Eating { }
        }

        
    public class Classes {
            
    /// <summary>
            
    /// 班级编号
            
    /// </summary>
            public int ID;
            
    /// <summary>
            
    /// 班级人数
            
    /// </summary>
            public int Count;
        }

    JSON的表现形式为:

    var Classes = {ID:1,Count:20}

    var People 
    = {
                   name:
    '',
                   sex:
    '',
                   birth:
    '',
                   classes:{},
                   Eating: function(){
    // 吃饭方法
                                alert(''+this.classes.ID+'班和'+this.classes.Count+'个同学一起吃饭');
                           },
                   Init: function(cls){
    // 构造函数
                            this.classes = cls; 
                         }
                   
    };

    People.Init(Classes);
    People.Eating();

    以上的JSON例子对应后台的Class表现形式都是static的,想知道如何使用面向对象的JSON请看下回吧。

  • 相关阅读:
    mysql主从与mycat与MHA
    mycat+mysql集群:实现读写分离,分库分表
    centos7下扩展根分区(图文详解)
    MySQL高可用之MHA的搭建
    zabbix_agentd客户端安装与配置(windows操作系统)
    centos7手把手教你搭建zabbix监控
    有关添加System.Web的问题
    锚标签<a>
    MVC3出现“提供程序未返回 ProviderManifestToken 字符串”的解决办法
    解决.net后台调用js弹窗后,前台界面样式乱掉问题
  • 原文地址:https://www.cnblogs.com/KangC/p/1349130.html
Copyright © 2011-2022 走看看