PHP使用JSON实例分析_PHP教程

php中文网
发布: 2016-07-13 10:38:56
原创
1021人浏览过

   在php编码json(json_encode)

  PHP json_encode()函数用于在PHP JSON编码。这个函数成功返回JSON表示的值,失败则返回FALSE。

  语法:

  string json_encode ( $value [, $options = 0 ] )参数:

  value: 即将编码的值,此函数只适用于UTF-8编码的数据。

立即学习PHP免费学习笔记(深入)”;

  options: 这个可选的值是一个位掩码,由JSON_HEX_TAG JSON_HEX_QUOT,JSON_HEX_AMP,JSON_HEX_APOS,JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT,JSON_UNESCAPED_SLASHES,JSON_FORCE_OBJECT

  例子

  下面的例子演示了如何用PHP数组转换成JSON:

 代码如下  

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

在执行过程中,这将产生以下结果:

{"a":1,"b":2,"c":3,"d":4,"e":5}

  下面的示例显示如何将PHP对象可以转换成JSON:

 代码如下  

   class Emp {
       public $name = "";
       public $hobbies  = "";
       public $birthdate = "";
   }
   $e = new Emp();
   $e->name = "sachin";
   $e->hobbies  = "sports";
   $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
   $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));

   echo json_encode($e);
?>

在执行过程中,这将产生以下结果:

{"name":"sachin","hobbies":"sports","birthdate":"08/05/1974 12:20:03 pm"}

  解码JSON在PHP(json_decode)

  PHP json_decode()函数用于解码JSON在PHP。这个函数返回值从json解码成适当的 PHP类型。

Find JSON Path Online
Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

Find JSON Path Online 30
查看详情 Find JSON Path Online

  语法:

  mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])参数:

  json_string: 它必须是UTF-8编码的数据编码的字符串

  assoc: 这是一个布尔类型参数设置为TRUE时,返回的对象将被转换成关联数组

  depth: 它是一个整数类型的参数,它指定递归深度

  options: 它是一个整数类型的位掩码JSON解码,支持JSON_BIGINT_AS_STRING

  例子

  下面的示例显示了如何可以使用PHP来解码JSON对象:

 代码如下  

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

   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>

在执行过程中,这将产生以下结果:

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

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

  假如我们获取的JSON数据如下:(可以使用curl、fsockopen等方式获取)

 代码如下  

{
 "translation":["Hello world"],
 "query":"你好世界",
 "errorCode":0,
 "web":[
  {
   "value":["hello world"],
   "key":"你好世界"
  },
  {
   "value":["Hello World"],
   "key":"世界你好"
  }
 ]
}

用json_decode函数返回array的方式得到:

Array
(
 [translation] => Array
  (
   [0] => Hello world
  )
 [query] => 你好世界
 [errorCode] => 0
 [web] => Array
  (
   [0] => Array
    (
     [value] => Array
      (
       [0] => hello world
      )
     [key] => 你好世界
    )
   [1] => Array
    (
     [value] => Array
      (
       [0] => Hello World
      )
     [key] => 世界你好
    )
  )
)

  我们在PHP语言中可以用以下方法取得我们想要的值:

 代码如下  

/*----------------------------------
$data = '
{
 "translation":["Hello world"],
 "query":"你好世界",
 "errorCode":0,
 "web":[
  {
   "value":["hello world"],
   "key":"你好世界"
  },
  {
   "value":["Hello World"],
   "key":"世界你好"
  }
 ]
}
';
-------------------------------------*/
$data = {
 "translation":["Hello world"],
 "query":"你好世界",
 "errorCode":0,
 "web":[
  {
   "value":["hello world"],
   "key":"你好世界"
  },
  {
   "value":["Hello World"],
   "key":"世界你好"
  }
 ]
}
STR;
$jsondata=json_decode($data,true);
header("Content-Type: text/html; charset=UTF-8");
//print_r($jsondata);
echo "
".$jsondata['translation'][0]; //Hello world
echo "
".$jsondata['query']; //你好世界
echo "
".$jsondata['web'][0]['value'][0]; //hello world
echo "
".$jsondata['web'][1]['key']; //世界你好
?>

  例,结合数据库操作

 代码如下  

include './include/conn.php';  //数据库链接文件
$sql_notice = mysql_query('SELECT * FROM gg_notice where enable = "1" limit 0,10');
$notice = mysql_fetch_array($sql_notice, MYSQL_ASSOC);
print_r ($notice);
?>



第一php网提供的教程--将数据库读取的数据生成json格式





<br><h1>请注意两种方法生成的对象数组在结构上的区别</h1><br><?php <br />
            echo  '<h1>法一</h1>';<br>
            //假设以下数组是根据我们从数据库读取的数据生成的<br>
            $jarr=array('total'=>239,'row'=>array(<br>
                        array('code'=>'001','name'=>'中国www.111cn.net','addr'=>'Address  11','col4'=>'col4 data'),<br>
                        array('code'=>'002','name'=>'Name 2','addr'=>'Address  12','col4'=>'col4 data'),<br>
                                                  )<br>
                       );<br>
            //法一:<br>
            $jobj=new  stdclass();//实例化stdclass,这是php内置的空类,可以用来传递数据,由于json_decode后的数据是以对象数组的形式存放的,<br>
            //所以我们生成的时候也要把数据存储在对象中<br>
            foreach($jarr as  $key=>$value){<br>
            $jobj->$key=$value;<br>
            }<br>
            print_r($jobj);//打印传递属性后的对象<br>
            echo  '使用$jobj->row[0]['code']输出数组元素:'.$jobj->row[0]['code'].'<br>';<br>
            echo  '编码后的json字符串:'.json_encode($jobj).'<br>';//打印编码后的json字符串
            <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 30px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><br>
            echo  '</p><hr>';<br>
            //法二:<br>
            echo '<h1>法二</h1>';<br>
            echo  '编码后的json字符串:';<br>
            echo $str=json_encode($jarr);//将数组进行json编码<br>
            echo  '<br>';<br>
            $arr=json_decode($str);//再进行json解码<br>
            print_r($arr);//打印解码后的数组,数据存储在对象数组中<br>
            echo  '使用$arr->row[0]->code输出数组元素:'.$arr->row[0]->code;
            <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 30px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px">?></p>
            <p style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 30px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"><br></p>
            
登录后复制

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/733189.htmlTechArticle在PHP编码JSON(json_encode) PHP json_encode()函数用于在PHP JSON编码。这个函数成功返回JSON表示的值,失败则返回FALSE。 语法: string json_encode ( $va...
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号