IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    json学习小记

    admin发表于 2015-10-08 11:17:59
    love 0

    关于 JSON,最重要的是要理解它是一种数据格式,不是一种编程语言。
    JSON 的语法可以表示以下三种类型的值:
    简单值:使用与 JavaScript 相同的语法,可以在 JSON 中表示字符串、数值、布尔值和 null。但 JSON 不支持 JavaScript 中的特殊值 undefined。
    对象:对象作为一种复杂数据类型,表示的是一组无序的键值对儿。而每个键值对儿中的值可以是简单值,也可以是复杂数据类型的值。
    数组:数组也是一种复杂数据类型,表示一组有序的值的列表,可以通过数值索引来访问其中的值。数组的值也可以是任意类型–简单值、对象或数组。

    最简单的 JSON 数据形式就是简单值,JSON 表示数值 5 的方式:

        5

    JSON 表示字符串的方式:

        "Hello world!"

    JavaScript 字符串与 JSON 字符串的最大区别在于, JSON 字符串必须使用双引号(单引号会导致语法错误)。

    与 JavaScript 的对象字面量相比, JSON 对象有两个地方不一样。
    首先,没有声明变量( JSON 中没有变量的概念)。
    其次,没有末尾的分号(因为这不是 JavaScript 语句,所以不需要分号)。

    {
        "name": "Nicholas",
        "age": 29
    }

    对象的属性必须加双引号,这在 JSON 中是必需的。属性的值可以是简单值,也可以是复杂类型值。可以像下面这样在对象中嵌入对象:

    {
        "name": "Nicholas",
        "age": 29,
        "school": {
            "name": "Merrimack College",
            "location": "North Andover, MA"
        }
    }

    同一个对象中绝对不应该出现两个同名属性。
    JSON 表示同一个数组:

        [25, "hi", true]

    JSON 数组也没有变量和分号。把数组和对象结合起来,可以构成更复杂的数据集合。

    [
        {
            "title": "Professional JavaScript",
            "authors": [
                "Nicholas C. Zakas"
            ],
            edition: 3,
            year: 2011
        },
        {
            "title": "Professional JavaScript",
            "authors": [
                "Nicholas C. Zakas"
            ],
            edition: 2,
            year: 2009
        }
    ]

    这个数组中包含一些表示图书的对象。每个对象都有几个属性,其中一个属性是”authors” ,这个属性的值又是一个数组。
    对象和数组通常是 JSON 数据结构的最外层形式(当然,这不是强制规定的),利用它们能够创造出各种各样的数据结构。

    ECMAScript 5 对解析 JSON 的行为进行规范,定义了全局对象 JSON。支持这个对象的浏览器有 IE 8+、 Firefox 3.5+、 Safari 4+、 Chrome和 Opera 10.5+。
    对于较早版本的浏览器,可以使用一个 shim: https://github.com/douglascrockford/JSON-js

    JSON 对象有两个方法: stringify() 和 parse() 。在最简单的情况下,这两个方法分别用于把JavaScript 对象序列化为 JSON 字符串和把 JSON 字符串解析为原生 JavaScript 值。

    JSON.stringify() 把一个 JavaScript 对象序列化为一个 JSON 字符串,然后将它保存在变量 jsonText 中。
    在序列化 JavaScript 对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为undefined 的任何属性也都会被跳过。结果中最终都是值为有效 JSON 数据类型的实例属性。

    将 JSON 字符串直接传递给 JSON.parse() 就可以得到相应的 JavaScript 值。
    如果传给 JSON.parse() 的字符串不是有效的 JSON,该方法会抛出错误。

    JSON.stringify() 方法的第三个参数用于控制结果中的缩进和空白符。如果这个参数是一个数值,那它表示的是每个级别缩进的空格数。

        var jsonText = JSON.stringify(book, null, 4);

    © admin for 可乐吧, 2015. | Permalink | No comment | Add to del.icio.us
    Post tags: json学习

    您可能也喜欢:
    laravel 学习 Schema 小记
    JSON到底是什么?
    Yeoman构建webapp生成的package.json注解
    laravel 学习之创建 todo 笔记
    无觅

    Feed enhanced by Better Feed from Ozh



沪ICP备19023445号-2号
友情链接