• 关于JSON


    何时是JSON,何时不是JSON?

    JSON是设计成描述数据交互格式的,他也有自己的语法,这个语法是JS的一个子集。

    {"prop":"val"}这样的声明有可能是JS对象字面量也有可能是 JSON字符串,取决于什么上下文中使用它,如果是在string上下文(用单引号或双引号引住或者从text文件读取)的话,那它就是JSON字符串,如果是用在对象字面上下文中,那它就是对象字面量。

    //这是JSON字符

    var foo = '{"prop":"val"}';

    //这是对象字面量

    var bar = {"prop":"val"};

    注意:JSON有非常严格的语法,在string上下文里{"prop":"val"}是个合法的JSON,但{ prop: "val" }和{ 'prop': 'val' }却是不合法的。所有属性名称和它的值都必须用双引号引住,不能使用单引号。另外,即便你用了转义以后的单引号也是不合法的。

    真正的JSON对象

    对象字面量不是JSON对象,但是有真正的JSON对象。但是两者完全不一样概念,在新版的浏览器里JSON对象已经被原生的内置对象了,目前有2个静态方法:JSON.parse用来将JSON字符串反序列化成对象,JSON.stringify用来将对象序列化成JSON字符串。老版本的浏览器不支持这个对象,但你可以通过json2.js来实现同样的功能。

    实例:

    // 这是JSON字符串,比如从AJAX获取字符串信息
    var my_json_string = '{ "prop": "val" }';
     
    // 将字符串反序列化成对象
    var my_obj = JSON.parse( my_json_string );
     
    alert( my_obj.prop == 'val' ); //  提示 true, 和想象的一样!
     
    // 将对象序列化成JSON字符串
    var my_other_json_string = JSON.stringify( my_obj );
  • 相关阅读:
    安卓权威编程指南-笔记(第24章 Looper Handler 和 HandlerThread)
    AndroidImageSlider
    ToolBar的使用
    安卓权威编程指南-笔记(第26章 服务的作用)
    关于两个update语句互相死锁的显现,加深我们对锁的了解 转载
    js 原型和构造方法 转载
    关于distinct 和group by的去重逻辑浅析
    tab 下一个
    当前浏览器版本
    清除li间隔
  • 原文地址:https://www.cnblogs.com/xuqiuyu/p/5799355.html
Copyright © 2020-2023  润新知