• JOSN


    json与jsonp区别

    • json是一种数据格式,而jsonp是一种数据传送方式

    什么是json?

    • JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率 。

    • JSON(JavaScript Object Notation) ,最重要的:它是一种数据格式,不是一种编程语言。并且,它虽然和javascript具有相同的语法形式,但json并不属于javascript。

    JSON的语法(传递的形式)

    1. 简单值

      • 使用与javascript相同的语法,可以在JSON中使用字符串,数值,布尔值,和null,但是不支持undefined。

      • 最简单的JSON数据形式就是简单值

      • 注:javascript字符串与json字符串的最大区别在于:JSON字符串必须使用双引号(单引号会导致语法错误)布尔值和null也是有效的JSON形式,但是实际运用中更多的用来表示更复杂的数据结构。

    2. 对象

      • JSON对象与javascript对象表示略有不同。

        • 没有声明变量(JSON中没有变量的概念)

        • 没有末尾分号

        • 注:※对象的属性必须加双引号※

      • 属性值可以是简单值,也可以是复杂类型值。

    3. 数组

      • 数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

      • JSON数组采用的就是javascript中数组字面量形式。

      • JSON数组和javascript数组表示区别:

        • 没有声明变量(JSON中没有变量的概念)

        • 没有末尾分号

      • example:

     [
            {
                "id": 0,
                "name": "lyl",
                "age": 18
            },
            {
                "id": 1,
                "name": "xxx",
                "age": 20
            }
        ]

    JSON的解析和序列化

    • stringify()把javascript对象序列化JSON字符串。

      • stringify(对象,过滤器,缩进选项)

      • 对象:不用解释,之前传入的JSON对象

      • 过滤器:可以是一个数组,也可以是一个函数

      • 缩进选项:是缩进4个空格还是其他的,最多10个空格,超过也只用10个空格

      var book = {
            title:“fangyuanyuan”,
            edition:3,
        }
        /*只返回title属性,缩进4个空格*/
        var jsonText = JSON.stringify(book,[“title”],4); 
      var book = {
            title:“fangyuanyuan”,
            edition:3,
        }
        /*通过一个函数详细的过滤,缩进4个空格*/
        var jsonText = JSON.stringify(book,function(key,value){
            switch(key){
                case”title”:  return  undefined;
                case”edition”:  return 5000;
            }
        },4); 
    • parse()把JSON字符串解析为原生javascript值。

      • parse(json字符串,还原函数)

      • JSON字符串:不用解释,之前传入的。

      • 还原函数:其实就是一个函数

    var book1Copy = JSON.parse(jsonText,function(key,value)){
            if(key == “time”){
                return new Date(value);
            }else{
                return value;
            }
        }

    JSON和XML相比的优势

    • JSON之所以这么流行,除了与JavaScript类似的语法外,还有很重要的一个原因是:可以把JSON数据结构解析为有用的JavaScript对象。

    • 从编码的可读性,xml有明显的优势,毕竟人类的语言更贴近这样的说明结构。json读起来更像一个数据块,读起来就比较费解了。不过,我们读起来费解的语言,恰恰是适合机器阅读,所以大家能明白,为什么工程师喜欢JSON格式了吧,方便取值啊,大家都要知道,工程师是很懒的。越好的工程师越懒。

  • 相关阅读:
    学习笔记:@RequestMapping
    学习笔记:serializable接口实现Java对象序列化
    学习笔记:JWT在spring中的时间
    学习笔记:JWT学习
    《OpenGL编程指南》学习进度备忘
    【练习7.4】使用直方图陆地移动距离EMD区分不同光线条件下的图片cvCalcEMD2
    【练习7.3】从直方图创建signature、计算两个直方图的EMD距离
    自动变量和开辟内存的生存期和作用域探讨
    【练习7.2】直方图归一化cvNormalizeHist、匹配cvCompareHist及各种匹配方法
    【练习7.1】cvCreateHist创建直方图、cvCalcHist计算直方图、cvQueryHistValue_1D访问直方图及右左法则
  • 原文地址:https://www.cnblogs.com/Walker-lyl/p/7454270.html
Copyright © 2020-2023  润新知