JSON

JSON相关知识汇总

字号+ 作者:H5之家 来源:H5之家 2015-10-31 15:00 我要评论( )

JSON相关知识汇总,JavaScript,UDN开发者论坛,专注企业开发的IT技术社区

本帖最后由 牛娜 于 2015-9-17 16:31 编辑

本文给大家汇总了一下关于json的相关的知识点,从基础到示例,非常全面,有需要的小伙伴可以参考下。

JSON:JavaScript 对象表示法(JavaScript Object Notation)


JSON 语法规则
  

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

    JSON有6种类型的值:

      对象、数组、字符串、数字、布尔值、null

    JSON对象是一个容纳“名/值”对的无序集合

      名字:任意字符串
      值:任意类型的JSON值,包括数组和对象(对象中可以嵌入对象)
    注:JSON字符串必须使用双引号(单引号会报错)

    一、对象

    javascript中创建字面量:

  • var object = {
  •   name:"lily",
  •   age:22
  • };

    复制代码


    或者:

  • var object = {
  •   "name":"lily",
  •   "age":22
  • };

    复制代码


    JSON:

  • {
  •   "name":"lily",
  •   "age":22
  • }

    复制代码


    二、数组

    JSON数组采用的是javascript中数组字面量形式
    扩展:
      把数组和对象结合起来可以构成更复杂的数据结合
    例如:

  • [
  •   {
  •     "name":"lily",
  •     "age":22,
  •     "job":"docter"
  •   },
  •   {
  •     "name":"nicy",
  •     "age":21,
  •     "job":"teacher"
  •   },
  •   {
  •     "name":"lily",
  •     "age":22,
  •     "job":"AE"
  •   }
  • ] 

    复制代码


    三、解析与序列化

    JSON拥有和javascript类似的语法,可以把JSON数据结构解析为有用的javascript对象

    1.JSON对象

    收发JSON数据

    读取、写入、发送和接收JSON数据对象时,需要转换成字符串,并能从字符串转换为JSON数据对象。(用于javascript相同的方式读写他们)

    JSON对象有两个方法:
      ① stringify(): 把javascript对象序列化为JSON字符串
      ② parse(): 把JSON字符串解析为原生的javascript值

    实例:

  • var book = {
  •   title:"professional JavaScript",
  •   authors:[
  •     "lily"
  •   ],
  •   edition:3,
  •   year:2011
  • };
  • var jsonText = JSON.stringify(book);
  • alert(jsonText);   //{"title":"professional JavaScript","authors":["lily"],"edition":3,"year":2011}
  • alert(typeof jsonText);   //string
  • var bookCopy = JSON.parse(jsonText);
  • alert(typeof bookCopy);   //object 

    复制代码


           这个例子中使用JSON.stringify()把一个javascript对象book序列化为一个JSON字符串,然后保存到jsonText中;将JSON字符串jsonText直接传给JSON.parse()就得到了相应的javascript值

    注:序列化javascript对象时,最终值都是有效JSON数据类型的实例属性,任何无效的值都会被跳过

    2.序列化选项

    JSON.stringify()在序列化javascript对象时,可以接收两个参数
      参数一:过滤器,可以是一个数组或函数
      参数二:一个选项,表示是否在JSON字符串中保留缩进
    1)过滤结果
           如果过滤器的参数是数组,那么JSON.stringify()的结果中只包含数组中列出的属性
    例如:

  • var book = {
  •   "title":"professional JavaScript",
  •   "authors":[
  •     "lily"
  •   ],
  •   edition:3,
  •   year:2011
  • };
  • var jsonText = JSON.stringify(book,["title","edition"]);
  • alert(jsonText); //{"title":"professional JavaScript","edition":3}
  • alert(typeof jsonText); // string

    复制代码


    2)字符串缩进:
          JSON.stringify()方法的第三个参数用于控制结果中的缩进和空白符

    3)toJSON()方法
         给对象定义toJSON()方法,可以返回其自身的JSON数据格式

    四、JSON访问值

    第一种:简单数组
    ['item1','item2','item3']
    取值:通过数字索引访问嵌入的值(第一项的索引为0)
    ['item1','item2','item3']
    var items = ['item1','item2','item3'];
    alert(items[0]);     // item1 
     
    第二种:使用{}表示对象和符合数组
    { "key":"value" }
    取值:通过键名访问嵌入的值 8338

    var oExample = { "name":"lily" };
    alert(oExample.name);     // lily
    alert(oExample["name"]);     // lily  
    使用这两种方式,可以用子记录(带命名的或数值的索引键)描述很多数据结构:

    例如:

     

  • 1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • JavaScript转换与解析JSON方法实例详解第1/2页

      JavaScript转换与解析JSON方法实例详解第1/2页

      2016-02-10 21:25

    • JSONSchema那些事儿:基本概念

      JSONSchema那些事儿:基本概念

      2016-02-05 17:02

    • 未来编程的9大猜想:JavaScript不必亲自编写

      未来编程的9大猜想:JavaScript不必亲自编写

      2016-01-30 13:01

    • Objective-C与JavaScript交互的那些事

      Objective-C与JavaScript交互的那些事

      2016-01-30 13:00

    网友点评
    p