zoukankan      html  css  js  c++  java
  • 浅谈Json数据格式

    我们先来看下w3cschool对json的定义:

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

    JSON 是存储和交换文本信息的语法。类似 XML。

    JSON 比 XML 更小、更快,更易解析。

    使用中,json有以下三种结构:

    1. 对象:{"name":"Michael","age":24}
    2. 数组:比如:[{"name":"Michael","age":24},{"name":"Tom","age":25}]
    3. 值:{"name":"Michael", "birthday":{"month":8,"day":26}},类似于对象嵌套对象.

     很多人疑惑{}和[]形式的区别。看到一段很经典的总结:大括号{}用来描述一组“不同类型的无序键值对集合”(每个键值对可以理解为OOP的属性描述),方括号[]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)

    上面的例子中,键都是字符串形式,值可以取任意类型。对于var p1={name:"Michael",age:24},我们称为对象自面量。两者是不同的,例子后面会讲到。

     

    访问json数据的两种方法:

    //例子
    var  obj={name:"Michael",age:24};
    
    obj.name;//方式1,和java语言中访问对象的属性是一样的。
    
    alert(obj["name"]) //方式2,和js中数组的访问方式是一样的。

    Json数据字符串化(序列化):

              Json数据是跨平台的,在网络数据传输流程中,json是以文本,即字符串的形式传递的,各种语言对字符串的处理比较统一。而在JS是 对象的形式。

    JSON.stringify()将JSON对象转为JSON字符串(序列化);

    JSON.parse()将JSON字符串转为JSON对象(反序列化)

      例子:

       

    <script>

     var  obj={"name":"Michael","age":24};

     var  obj1=JSON.stringify(obj);//注意:json全大写

     alert(obj);//弹出Object类型;说明是对象

     alert(obj.name);//弹出属性值

     alert(obj1);//弹出转化为字符后的;

     var  obj2 = JSON.parse(obj1);

     alert(obj2)//转换后,弹出Object类型;说明已经转化成对象;

    </script>

    对象字面量的例子:

    <script>
    
     var  obj={name:"Michael",age:24};
    
     
    
     alert(obj);//弹出Object类型;说明是对象
    
     alert(obj["name"])//alert(obj.name),但是obj[name]不行
    
     
    
     var  obj1=JSON.stringify(obj);//注意:json全大写
    
     alert(obj1);//弹出转化为字符后的;{"name":"Michael","address":24};
    
     
    
    </script>

    这个例子看出,对象字面量的使用方法跟json完全一样。个人以为,可以理解为已经转化成json了。

  • 相关阅读:
    N^N hdu1060
    二叉树的所有操作
    溢出问题
    POJ1562深搜问题
    已知前序,中序,求后序
    交换a,b
    深度和广度优先搜索
    最长回文子串
    scanf
    WCF Ria Service 理解
  • 原文地址:https://www.cnblogs.com/xiaochongchong/p/5284441.html
Copyright © 2011-2022 走看看