JSON 数据交换格式

json是一种轻量级的数据交换格式,由道格拉斯·克罗克福特发明(创建)。它使得人们方便阅读和编写。


json 基于两种数据结构

  1. 名称/值(key / value) 对的集合。不同的编程语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
  2. 值的有序列表。在大部分语言中,它被实现为数组(array),矢量(vector),列表(list),序列(sequence)。

json的集中数据类型

值(value) 可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

value

  • object 对象

object对象

  • array 数组

array数组

  • string 字符串

string字符串

  • number 数值

number 数值

  • boolean 布尔值

    true 和 false

  • null 空指针(值)

    null


json 与 javascript对象之间的转化

  • 序列化(js对象 - -> json格式字符串)

    JSON.stringify(jsObj)
    JSON.stringify(jsObj, null, " ")
    JSON.stringify(jsObj, params , " ")
    params: 用于控制如何筛选对象的键值. Array [...] / function () { }

  • 反序列化( json格式字符串 - -> js 对象)

    JSON.parse(json)
    JSON.parse(json, function () { 转换解析出的属性 })
    javascript 的eval() 函数:eval("("+ json + ")")

    注:

    • eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。
    • JSON 解析器只能识别 JSON 文本,而不会编译脚本。