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

      Json是一种数据格式,用于服务器之间相互传递数据,这种数据格式出现以前,服务器间传递数据都是采用XML格式,但Douglas Crockford觉得XML的生成和解析都太麻烦,于是便诞生了Json数据格式。

      Json格式的规范比较简单,

      1) 并列的数据之间用逗号(", ")分隔, 比如: "北京","上海"

      2) 映射用冒号(": ")表示。              比如:"城市":"北京","城市":"上海"

      3) 并列数据的集合(数组)用方括号("[]")表示。 比如: ["北京","上海"]

      4) 映射的集合(对象)用大括号("{}")表示。比如:{["城市":"北京","城市":"上海"]}

      参考:http://www.ruanyifeng.com/blog/2009/05/data_types_and_json.html

      刚刚走出校园,PHP中有json_encode()函数,可以把数组转换为json格式,举个例子,假设前台smarty页面中需要一个用户信息数组 

      

    $userinfo = array(
        'user1' => array('name' => '张三', 'sex' => '男', 'age' => '18',),
        'user2' => array('name' => '李四', 'sex' => '女', 'age' => '20',),
    )

        通过json_encode()函数进行转换之后变为  

    {"user1":{"name":null,"sex":null,"age":"18"},"user2":{"name":null,"sex":"u016e","age":"20"}}
    
    注意:1) 数组中的汉字被转化为了null,理由很简单,json_encode()为了与前台保持一致,所以只支持utf-8编码,可以使用urlencode()对数组中的汉字进行转换,当使用的时候利用urldecode()转回来即可。例如: 
    foreach($userinfo as $key => $value){
      $userinfo[$key]['name'] = urlencode($userinfo[$key]['name']);
      $userinfo[$key]['sex'] = urlencode($userinfo[$key]['sex']); }      
    echo urldecode(json_encode($userinfo)); //此时输出的json格式数据为{"user1":{"name":"张三","sex":"男","age":"18"},"user2":{"name":"李四","sex":"女","age":"20"}}
    2) 根据json格式规范,一对大括号("{}")存放的是对象的集合,如果$userinfo数组是一个索引数组,则返回的是一个数组的集合(位于中括号"[]"里)
    ["user1":{"name":"张三","sex":"男","age":18}],"user2":{"name":"李四","sex":"女","age":"20"}],如果对索引数组转换后希望得到对象的集合而非数组的集合,可以对索引数组进行强制类型转换为object类型 echo json_encode((object)$userinfo)

      此json格式的数组在被传到前台之后,通过使用eval函数(eval($userinfo)),就可以通过索引来使用数组中的值。

      

  • 相关阅读:
    【JavaScript】函数(未完全)
    Spring集成Jersey开发(附demo)
    Tomcat中work目录的作用
    Lucene全文检索(一)
    JS放大镜特效(兼容版)
    S2SH整合
    EL表达式
    JSP和JavaBean
    Cookie和Session
    request对象和response对象
  • 原文地址:https://www.cnblogs.com/Jqxing/p/3268242.html
Copyright © 2011-2022 走看看