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