當前位置:首頁 » 編程語言 » php與json

php與json

發布時間: 2022-07-05 10:54:02

A. 如何在php中返回Json數據

概述

不對。

返回json用的json_encode()方法沒錯,但是需要在頭部聲明格式。

代碼解析

php返回需要用json_encode()方法來將需要轉換的字元串轉換成json編碼格式(注意:僅僅更換文件內容,而返回的文件依然為文本格式且編碼為gtk)

所以,這里需要在php頭部聲明

header('Content-Type:text/json;charset=utf-8');

JSON(javaScriptObject Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於ECMAScript(歐洲計算機協會制定的js規范)的一個子集,採用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網路傳輸效率。

json通常被作為配置文件,常見還有.ini

B. php如何解析這種JSON

目前,JSON已經成為最流行的數據交換格式之一,各大網站的API幾乎都支持它。
從5.2版本開始,PHP原生提供json_encode()和json_decode()函數,前者用於編碼,後者用於解碼。
一、json_encode()
該函數主要用來將數組和對象,轉換為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}

由於json只接受utf-8編碼的字元,所以json_encode()的參數必須是utf-8編碼,否則會得到空字元或者null。當中文使用GB2312編碼,或者外文使用ISO-8859-1編碼的時候,這一點要特別注意。

二、索引數組和關聯數組
PHP支持兩種數組,一種是只保存"值"(value)的索引數組(indexed array),另一種是保存"名值對"(name/value)的關聯數組(associative array)。
由於javascript不支持關聯數組,所以json_encode()只將索引數組(indexed array)轉為數組格式,而將關聯數組(associative array)轉為對象格式。
比如,現在有一個索引數組
$arr = Array('one', 'two', 'three');
echo json_encode($arr);

結果為:

["one","two","three"]

三、類(class)的轉換
下面是一個PHP的類: class Foo { const ERROR_CODE = '404'; public $public_ex = 'this is public'; private $private_ex = 'this is private!'; protected $protected_ex = 'this should be protected'; public function getErrorCode() { return self::ERROR_CODE; } }
現在,對這個類的實例進行json轉換:

$foo = new Foo;
$foo_json = json_encode($foo);
echo $foo_json;

輸出結果是
{"public_ex":"this is public"}

可以看到,除了公開變數(public),其他東西(常量、私有變數、方法等等)都遺失了。

C. 淺談PHP中JSON數據操作

JSON,全稱是JavaScript
Object
Notation。它是基於JavaScript編程語言ECMA-262
3rd
Edition-December
1999標準的一種輕量級的數據交換格式,主要用於跟伺服器進行交換數據。跟XML相類似,它獨立語言,在跨平台數據傳輸上有很大的優勢
新建文件json.php,先做encode操作:
//encode
//生成JSON格式數據
$arr
=
array(1,2,3,4,5,6,7,8,9,'Hello','PHP');
echo
json_encode($arr);//json_encode:把一個對象轉換成json格式數據
得到的結果是[1,2,3,4,5,6,7,8,9,"Hello","PHP"]
再來做decode操作:
//decode
解碼
$jsonStr
=
'{"h":"Hello","w":"World","0":[3,2,1]}';
$obj
=
json_decode($jsonStr);
echo
$obj->h;//使用成員訪問的方式就可以得到結果
知道簡單的使用方法後,可以嘗試著抓API數據,比如天氣...
以上所述就是本文的全部內容了,希望大家能夠喜歡。

D. PHP生成及獲取JSON文件的方法

本文實例講述了PHP生成及獲取JSON文件的方法。分享給大家供大家參考,具體如下:
首先定義一個數組,然後遍歷數據表,把相應的數據放到數組中,最後通過json_encode()轉化數組
json_encode()
函數的功能是將數值轉換成
JSON
數據存儲格式。
putjson.php:
<?php
//
生成一個PHP數組
$data
=
array();
$data[0]
=
array('1','吳者然','onestopweb.cn');
$data[1]
=
array('2','何開','iteye.com');
//
把PHP數組轉成JSON字元串
$json_string
=
json_encode($data);
//
寫入文件
file_put_contents('test.json',
$json_string);
?>
有同名的
JSON
文件則覆蓋,沒有則創建。
生成或覆蓋的
JSON
如下:
復制代碼
代碼如下:[["1","\u811A\u672C\u4E4B\u5BB6","www.jb51.net"],["2","\u7F16\u7A0B\u5F00\u53D1","jb51.net"]]
然後,把
JSON
文件中的數據讀取到PHP變數中。
getjson.php:
<?php
//
從文件中讀取數據到PHP變數
$json_string
=
file_get_contents('test.json');
//
把JSON字元串轉成PHP數組
$data
=
json_decode($json_string,
true);
//
顯示出來看看
var_mp($data);
echo
'<br><br>';
print_r($data);
echo
'<br><br>';
echo
'編號:'.$data[0][0].'
姓名:'.$data[0][1].'
網址:'.$data[0][2];
echo
'<br>';
echo
'編號:'.$data[1][0].'
姓名:'.$data[1][1].'
網址:'.$data[1][2];
?>
效果圖:
PS:這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:
在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat
在線XML/JSON互相轉換工具:
http://tools.jb51.net/code/xmljson
json代碼在線格式化/美化/壓縮/編輯/轉換工具:
http://tools.jb51.net/code/jsoncodeformat
C語言風格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP中json格式數據操作技巧匯總》、《PHP針對XML文件操作技巧總結》、《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。

E. PHP怎樣實現json

PHP實現json的方式比較簡單。把要實現json的數據封裝成數組,然後調用json_encode函數即可生成json數據。示例如下:

<?php
$arr=array('name'=>'chinawinxp','fix'=>'www');
echojson_encode($arr);
//{"name":"chinawinxp","fix":"www"}
?>

F. 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; //用對象的方式訪問
像這樣的問題很常見,沒必要在到處問,你多在後盾找找就不必這么麻煩了

G. php 輸出json及顯示json中的中文漢字詳解及實例

php
輸出json及顯示json中的中文漢字
在php中,我們經常需要將數組輸出json,只需要使用json_encode函數處理一下數組即可,但有的時候數組裡面有中文,使用json_encode函數處理後中文字元被編碼成了Unicode,如何才能在json中顯示中文呢?請看下文。
首先介紹一下php輸出json格式:
一種最簡單的用法,就是把數組直接輸出為json,如下:
<?php
$arr
=
array('p1'=>'ni"hao','p2'=>2,'ch'=>'碼農你好!');
$json
=
json_encode($arr);
echo
$json;
?>
輸出的結果為:
{"p1":"ni\"hao","p2":2,"ch":"\u7801\u519c\u4f60\u597d\uff01"}
這里要注意:
雙引號在json中會被自動編碼為\",這個很好理解,js中字元串中是不允許出來單引號、雙引號和反斜杠的。
中文字元被編碼成了Unicode
如果是寫介面,那直接這樣輸出就夠了,中文無需去做處理。等到了客戶端,再去把Unicode的中文轉成漢字即可。但如果要在伺服器端直接輸出漢字出來,那我們可以做如下處理。
<?php
$arr
=
array('p1'=>'nihao','p2'=>2,'ch'=>'碼農你好!');
$json
=
json_encode($arr);
echo
decodeUnicode($json);
function
decodeUnicode($str){
return
preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
create_function(
'$matches',
'return
mb_convert_encoding(pack("H*",
$matches[1]),
"UTF-8",
"UCS-2BE");'
),
$str);
}
?>
輸出:
{"p1":"ni\"hao","p2":2,"ch":"碼農你好!"}
這個操作很簡單,其實就是把輸出結果匹配一下,把Unicode還原成了漢字。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

H. php如何發送和接收JSON數據

對於json,PHP有對應的方法進行操作。

一般而言,json會以字元串形式傳給PHP腳本,一般都是放在$_POST裡面,

14

<?php
// 接收
$json_parameter = $_POST['json_str'];

// 處理, 變成數組
$array = json_decode($json_parameter);

// PHP 把數組數據變成json格式字元串,發給頁面
$demo = array(
'key' => 'value',
'key2' => 'value2'
);
$demo_json = json_encode($demo); // 格式是{"key":"value","key2":"value2"}
echo $demo_json;

I. 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標準的數據類型。

J. php 和json傳參的問題

變數帶進去解析,這就傳進去了。示例如下:
$test=123;
POSTFILED=>'{

......
"message":"'.$test.'"
}';

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726