zoukankan      html  css  js  c++  java
  • json的初步学习

    Json’ 是一种数据交互格式之一,客户端和服务端之间的数据交互,

    Json js js 的子集, js 可以很好的解析这种数据格式

     

    Php json 的解析主要是基于两个函数: json-encode json_decode

     

    一、json_encode()

    有点像mysql 里面的序列化函数,serialize

    该函数主要用来将数组和对象,转换为json 格式。先看一个数组转换的例子:

    1.           
    
    
    $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);  
    
    2.          echo json_encode($arr); 
    

    结果为1.          {"a":1,"b":2,"c":3,"d":4,"e":5} 

     
    

    再看一个对象转换的例子:

    1.      $obj->body = 'another post';  
    
    2.           $obj->id = 21;  
    
    3.          $obj->approved = true;  
    
    4.           $obj->favorite_count = 1;  
    
    5.     $obj->status = NULL;  
    
    6.           echo json_encode($obj); 
    

    结果

    1.         {  
    
    2.     "body":"another post",  
    
    3.         "id":21,  
    
    4.           "approved":true,  
    
    5.           "favorite_count":1,  
    
    6.          "status":null  
    
    7.          }  
    
     
    
    由于json
    只接受utf-8
    编码的字符,所以json_encode()
    的参数必须是utf-8
    编码,否则会得到空字符或者null
    。当中文使用GB2312
    编码,
    或者外文使用ISO-8859-1 编码的时候,这一点要特别注意。
     
    

    四、json_decode()

    类似与反序列化函数

    该函数用于将json 文本转换为相应的PHP 数据结构。下面是一个例子:

    通常情况下,json_decode() 总是返回一个PHP 对象,而不是数组。比如:

    1.           $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';  
    
    2           var_dump(json_decode($json)); 
    

    结果就是生成一个PHP 对象:

    1.          object(stdClass)#1 (5) {  
    
    2.           ["a"] => int(1)  
    
    3.          ["b"] => int(2)  
    
    4.           ["c"] => int(3)  
    
    5.           ["d"] => int(4)  
    
    6.         ["e"] => int(5)  
    
    7.           } 

    如果想要强制生成PHP关联数组,json_decode()需要加一个参数true:

      $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

      var_dump(json_decode($json),true);

    结果就生成了一个关联数组:

      array(5) {

         ["a"] => int(1)
         ["b"] => int(2)
         ["c"] => int(3)
         ["d"] => int(4)
         ["e"] => int(5)

      }

  • 相关阅读:
    【Netty学习】 ChannelInitializer 学习
    【Netty学习】Netty 4.0.x版本和Flex 4.6配合
    Spring框架学习
    【JS教程23】jquery链式调用
    【JS教程22】jquery特殊效果
    【JS教程21】数组及操作方法
    【JS教程20】jquery动画
    【JS教程19】jquery绑定click事件
    【JS教程18】jquery样式操作
    【JS教程17】jquery选择器
  • 原文地址:https://www.cnblogs.com/y0umer/p/2809559.html
Copyright © 2011-2022 走看看