跳转至

JSON

关于JSON

  • JSON是一种数据表达格式
  • 原来是JS一部分,由于过于优秀,被从JS中分离出来,成为一种规范,是一种常用的数据传输格式
  • 由于JSON原来是JS一部分,所以JS对JSON的支持还是比较优秀的
  • 由于原生JS提供的JSON支持并不多,但有JSON4等外部JS库可以用

键值对

  • 数据存储的一种方式,大概意义就是使用一个不变的量定位一个可变的量
  • 变量就是一种常见的键值对,变量名为键名,变量值为键值
  • 键名不变,否则就是另一个键了,键值可能变,也可以不变(常量)

JSON基本数据格式

数组

  • 只有键值,不写键名,在赋值时会自动定义键名,也可以手动给指定键名赋键值
  • JS数组键名是从0开始的
  • ["a","b","c"]
  • 数组中可以有多个元素,但是元素需要都是同一类型

键值对

  • 键名和键值进行组合
  • {"a":3,"b":"Alpha","d":6.877}
  • 键名必须为字符串,键值可以是其他数据类型

组合

  • 这两种数据可以进行组合

    [{status:0,
    data:[8,7,7,3],
    text:"2333"
    },{status:0,
    data:[2,6,7,1],
    text:"2333"
    },{status:0,
    data:[4,9,5,4],
    text:"2333"
    }]
    

  • 重点:括号必须要完成嵌套,逗号分割不能少,标点符号全英文

  • 可以发现,[]用于包括没有键名的值序列,{}用来包括键值对,而不论是那种形式,一个整体都可以作为一个键值来使用

JSON中数据类型

  • 此处特指键值
  • 由于PHP,JS都是弱类型语言,我们处理数据时候文本和数字不做明显区分,反正都会自动转化,但是在其他语言运行时需要注意
  • SQL自增数据必须为整数,且不能人工赋值

JSONP

  • 一种数据传输方式
  • 用于解决跨域访问被禁止等问题
  • 即:服务器不直接返回数据,而是返回Callback(数据)内容
  • Callback是定义在客户端的一个数据处理函数,名字可以自己定。所以通常JSONP从服务器获取数据时会传一个参数,告诉服务器该回调哪个函数
  • 该数据调用时以js文件形式获取,然后浏览器JS引擎会解析该数据,然后调用指定函数
    <script src="http://example.com/3.php?callback=2166788">