• 关于Json的学习


    1、Json是一种数据格式,不是编程语言

    2、Javasript字符串和Json字符串的区别:Json字符串必须使用双引号,Json不支持Javascript的         undefined。

    3、与Javascript对象字面量相比。Json没有声明变量,没有末尾的分号;

    4、Json数组的属性必须使用双引号

    5、早期的Json解析器使用Javascript的eval()函数。ECMA5script5定义了Json对象。(IE8++)

    6、Json对象的两个方法;stringify()和parse()。用于把Javascript的对象序列化为Json字符串和把Json字符串解析为原生Javascript值。

    7、JSON.stringify()把一个Javascript对象序列化为一个Json字符串,结果默认不包含任何空字符串或缩进,最终都是值为有效JSON数据类型的实例属性

    8、JSON字符串直接传给JSON.parse()可以得到相应的JavaScript值。

    9、序列化选项:

    var book={
                    "title":"person Javascript",
                    "author"  :["Nicholas"],
                     edition  :3,
                     year     :2011
                   };
    var jsontext=JSON.stringify(book,["title","edition"]);    
    var jsonText=JSON.stringify(book,function(key,value){
      switch(key){
        case "author":
          return value.join(",")
        case "year":
          return 5000;
        case "edition":
          return undefined;
        default:
          return value;
    }
    });
    var jsontext=JSON.stringify(book,null,4)

    JSON.stringify()第二个参数与将要序列化的对象属性是相对的。在返回的结果字符串中,只包含这两个属性:{"title":"person Javascript","editon":3}

    第二个JSON.stringify()使用了函数过滤器,第一次调用时候,传入的键是空字符串,值是book对象;

    第三个JSON.stringify()控制结果中的缩进和空白符

    10、把一个对象传入JSON.stringify(),序列化该对象的顺序:

      (1)如果存在toJSON(方法,并能通过它取得有效的值,调用该方法。否则按默认顺序执行序列化

      (2)如果提供了第二个参数,应用函数过滤器。传入函数过滤器的值是(1)的返回值

      (3)对第(2)步返回的每个值进行序列化

      (4)如果有第三个参数,进行格式化

    11、JSON.parse()方法解析:

    var book={
                    "title":"person Javascript",
                    "author"  :["Nicholas"],
                     edition  :3,
                     year     :2011
                     releaseDate:new Date(2011,11,1)
                   };
    var jsontext=JSON.stringify(book);
    var bookCopy=JSON.parse(jsontext,function(key,value){
             if(key=="releaseDate")
               return new Date(value);
             else
               return value;  
    }
    );

    上述的book属性releaseDate保存着一个Date对象。这个对象经过序列化之后变成有效的JSON字符串,然后经过解析在bookCopy中还原为一个Date对象。

  • 相关阅读:
    day22 os模块
    开始 Dojo 开发
    Java 多线程编程
    Oracle 中常用数据字典大总结
    使用Java API的5个技巧
    Java 守护线程概述
    给Java新手的一些建议——Java知识点归纳(Java基础部分)
    消息中间件收录集
    2017年Java面试题整理
    Java 9 新特性快速预览
  • 原文地址:https://www.cnblogs.com/JoeChan/p/4509764.html
Copyright © 2020-2023  润新知