您好,欢迎访问一九零五行业门户网

PHP使用JSON实例分析详解

json是一种轻量级别的数据交互格式,他可以方便快捷的提交网络的应用,相对于xml来讲json可读性不强,但要在数据传输上要优于xml哦,下面我们看几个实例。
在php编码json(json_encode)
php json_encode()函数用于在php json编码。这个函数成功返回json表示的值,失败则返回false。
语法:
string json_encode ( $value [, $options = 0 ] )参数:
value: 即将编码的值,此函数只适用于utf-8编码的数据。
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:
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:
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类型。
语法:
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对象:

在执行过程中,这将产生以下结果:
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语言中可以用以下方法取得我们想要的值:
'001', 'name' => '中国www.phprm.com', 'addr' => 'address 11', 'col4' => 'col4 data' ) , array( 'code' => '002', 'name' => 'name 2', 'addr' => 'address 12', 'col4' => 'col4 data' ) , ));//法一:$jobj = new stdclass(); //实例化stdclass,这是php内置的空类,可以用来传递数据,由于json_decode后的数据是以对象数组的形式存放的,//所以我们生成的时候也要把数据存储在对象中foreach ($jarr as $key => $value) { $jobj->$key = $value;}print_r($jobj); //打印传递属性后的对象echo '使用$jobj->row[0]['code']输出数组元素:' . $jobj->row[0]['code'] . '
';echo '编码后的json字符串:' . json_encode($jobj) . '
'; //打印编码后的json字符串echo '';//法二:echo '法二';echo '编码后的json字符串:';echo $str = json_encode($jarr); //将数组进行json编码echo '
';$arr = json_decode($str); //再进行json解码print_r($arr); //打印解码后的数组,数据存储在对象数组中echo '使用$arr->row[0]->code输出数组元素:' . $arr->row[0]->code;?>
本文地址:
转载随意,但请附上文章地址:-)
其它类似信息

推荐信息