php定义json
Ⅰ php怎么接收json类型数据
PHP接收JSON格式的数据
在API服务中,目前流行采用json形式来交互。
给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据。
接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型。因此,对型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之类的内容无法解析,如果用$_POST数组来接收就会失败!
此时可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 来获取提交的数据
查看手册,可以发现$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的区别:
$_POST:通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量。
$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。
补充说明:PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型。
Ⅱ php解析json数组问题。
<?php
$a=json_decode('{"status":0,"total":1,"size":1,"contents":[{"title":"111","location":[113.11509,23.012777],"city":"u4f5bu5c71u5e02","create_time":1385386545,"geotable_id":38432,"address":"7","province":"u5e7fu4e1cu7701","district":"u7985u57ceu533a","map_id":"1","uid":42504634,"coord_type":3,"type":0,"distance":370,"weight":0}]}');
$b=$a->contents;
echo$b[0]->title;
echo'<br>';
echo$b[0]->location[0];
echo'<br>';
echo$b[0]->location[1];
?>
哎,你这个对象略复杂,我的眼睛都看花了。。。
还有,城市名并没有加密,只是楼上没有指定编码utf-8
城市名是:佛山市
地址是:广东省佛山市禅城区汾江南路8号
省份是:广东省
district是:禅城区
Ⅲ 如何向php服务器发送数据为json的post请求
用curl
$ch = curl_init();
$header[] = "Content-type: text/xml";//定义content-type为xml
curl_setopt($ch, CURLOPT_URL, $url); //定义表单提交侍悉地址
curl_setopt($ch, CURLOPT_POST, 1); //定义提交类型 1:POST ;0:GET
curl_setopt($ch, CURLOPT_HEADER, 1); //兆辩定义是否显示状态头 1:显示 ; 0:不显示
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//定义请求类型
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//定义是族谈缺否直接输出返回流
curl_setopt($ch, CURLOPT_POSTFIELDS, $postStr); //定义提交的数据,这里是XML文件
$res = curl_exec($ch);
curl_close($ch);//关闭
Ⅳ php转换成json数据格式
json和php数组 格式的互相转换,参考如下:
$php_json = json_encode($json_arr); //把php数组格式转换成 json 格式的数据
echo $php_json;
$php_json = json_decode($php_json); //再把json格式的数据转换成php数组
print_r($php_json);
json数组
$json = '[{"id":"22","name":"33","descn":"44"}]'; //json格式的数组转换成 php的数组
$arr = (Array)json_decode($json);
echo $arr[0]->id; //用对象的方式访问
Ⅳ PHP怎么把多个数组揉成一个json字符串
<?php
//创建数组
$array = array(
"name" => "Hza",
"age" => 21
);
//数组转化为json格式察咐
echo json_encode($array);
echo "<br />";
//创建类
class Student {
public $name;
public $age;
//初始化是赋值
function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
//魔术方法 把对象转换成字符串格式 以备使用json_encode()函数
function __tostring() {
//对象转败悔纯化为json格式
return json_encode($this,JSON_FORCE_OBJECT);
}
}
//实例化对象
$person1 = new Student('Hza', 20);
//输出json格式
echo $person1;
?>
(5)php定义json扩展阅读:
json六个构造字符:
begin-array = ws %x5B ws ; [ 左方括号
begin-object = ws %x7B ws ; { 左大前咐括号
end-array = ws %x5D ws ; ] 右方括号
end-object = ws %x7D ws ; } 右大括号
name-separator = ws %x3A ws ; : 冒号
value-separator = ws %x2C ws ; , 逗号
在这六个构造字符的前或后允许存在无意义的空白符(ws):
ws = *(%x20 /; 空间
%x09 /; 水平标签
%x0A /; 换行或换行
%x0D); 回程
Ⅵ PHP中用json实现购物车功能,怎么实现
购物车中至少包含 以下信息:
商品ID,商品名称,商祥磨厅品价格,购买数量,(其他如果有)
把以上信息组成一个数组,
每购买一件商品,就生成一游桥个这样的数组,多谨隐个数组组成一个大数组,
然后将这个二维数组转成JSON格式存入COOKIE即可。在购物车页面加载时,读取COOKIE内的这个JSON,然后再转成数组输出到页面即可。
PHP数组转JSON:json_encode
JSON转数组:json_decode
Ⅶ php中得json是干什么用的
json_encode以及json_decode是将一个数组转换为json文本和将json文本转换为一个数陪正组。里面的汉脊颂字会转成unicode编码樱乱郑
Ⅷ 用php如何将数据(文本和图片)转换成json格式
前台:
<form action="跳转页面" method="post" enctype="multipart/form-data">
<input type="file" name="fname" />
<input type="submit" value="Submit" />
</form>
input[type=file] 表示:需要上传的文本或者图片
后台:
echo json_encode($_POST); // 输出json 字符串
输出的内容是上传到服务器的文件路径等相关信息
Ⅸ php怎么将数组数组转化为json格式的数据
一、json_encode()
[php]view plain
<?php
$arr=array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echojson_encode($arr);
?>
{"a":1,"b":2,"c":3,"d":4,"e":5}
$obj->body='anotherpost';
$obj->id=21;
$obj->approved=true;
$obj->favorite_count=1;
$obj->status=NULL;
echojson_encode($obj);
{
"body":"anotherpost",
"id":21,
"approved":true,
"favorite_count":1,
"status":null
}
- 由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。
输出
[php]view plain
再看一笑祥个对象转换的例子:
[php]view plain
输出
[php]view plain
二、索引数组和关联数组
PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。
由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。
PHP取Mysql数据并转换为json格式,这很简单
过程分为取数据-保存为数组-json格式输出三步
取数据分为连接与查询(条件等),参考下面文章
保存为数组也容易,array_push就行
json格式的输换最为便捷,只需echo json_encode($myArr);
输出的就是你要的json格式,就像你图中的那样
参考文章:http://snowcoal.com/article/568.html