當前位置:首頁 » 編程語言 » phpjson實例

phpjson實例

發布時間: 2022-09-03 15:07:08

php如何輸出中文json格式字元串

php如何輸出中文json格式字元串
如何對json格式的字元串進行轉換,php提供了兩個函數:
json_encode 對變數進行 JSON 編碼
json_decode 對 JSON 格式的字元串進行編碼

下面看個實例:
$arr = ['a', 'b', 'c'];echo json_encode($arr);

輸出為:
["a","b","c"]

但是,當我們在數組中放入中文的時候,就會出現問題:
$arr = [ '世界', '你好',
];echo json_encode($arr);

輸出的結果為:
["\u4e16\u754c","\u4f60\u597d"]

這個結果顯然不是我們想要的,但是為什麼出現這個呢?
因為當我們的值中包含中文時,php對他進行json編碼時底層會對中文進行unicode編碼,導致結果不可讀,那該怎麼解決呢?
方法一
可以利用 urlencode 和 urldecode 方法繞過這個轉碼為 unicode 的過程,先將中文欄位進行urlencode,然後json_encode,最後再用urldecode處理結果,便可以正常顯示中文。具體代碼如下:
$arr = [ '世界', '你好',
];echo urldecode(json_encode(array_map('urlencode', $arr)));

輸出結果為:
["世界","你好"]

方法二
自PHP5.4版本,官方就已經給Json新增了一個選項: JSON_UNESCAPED_UNICODE。加上這個選項後,就不會自動把中文編碼了。具體代碼如下:
$arr = [ '世界', '你好',
];echo json_encode($arr, JSON_UNESCAPED_UNICODE);
["世界","你好"]

看吧,這才是我們想要的結果 :)

② PHP JSON格式數據交互實例代碼詳解

在PHP中解析JSON主要用到json_encode和json_decode兩個PHP
JSON函數,比PHP解析XML方便很多,下面詳細介紹下PHP
JSON的使用。
JSON基礎介紹
JSON(javaScript
Object
Notation)
是一種輕量級的數據交換格式。
JSON主要有兩種結構:
「名稱/值」對的集合,在PHP中可以理解為關聯數組
(associative
array)。
值的有序列表(An
ordered
list
of
values)。在PHP中可以理解為普通數組(array)。
對象是一個無序的「『名稱/值'對」集合。一個對象以「{」(左括弧)開始,「}」(右括弧)結束。每個「名稱」後跟一個「:」(冒號);「『名稱/值'
對」之間使用「,」(逗號)分隔。
數組是值(value)的有序集合。一個數組以「[」(左中括弧)開始,「]」(右中括弧)結束。值之間使用「,」(逗號)分隔。值(value)可以是雙引號括起來的字元串(string)、數值(number)、true、false、
null、對象(object)或者數組(array)。這些結構可以嵌套。
我目前對JSON的理解更偏向於數組,類似於PHP中的關聯數組,你可以將PHP數組轉換為JSON格式。
更多JSON的介紹請參考JSON官網和IBM關於JSON的介紹
PHP
JSON解析實例
PHP5.2開始已經將JSON作為PHP擴展的一部分,所以並不需要另外安裝JSON。另外為了保證下面的PHP
JSON實例不出現中文亂碼,請保證你的編碼格式為UTF8。
JSON是Javascript的一部分,首先我們看下Javascript中如何定義JSON
復制代碼
代碼如下:
var
json_obj
=
{'WebName':'PHP網站開發教程網'};
alert(json_obj.WebName);
var
json_arr
=[{'WebName':'PHP網站開發教程網','WebSite':'http://www.jb51.net'},{'ArtTitle':'PHP
JSON實例講解'}]
alert(json_arr[1].ArtTitle);
var
php_json
=
[['PHP網站開發教程網','http://www.jb51.net'],['文章標題','PHP
JSON實例講解']];
alert(php_json[1][0]);
在這段JSON實例代碼中我構建了所有的JSON形式,
第1行,定義了JSON以對象形式存在
第4行,定義了JSON以數組形式存在,嵌套了JSON對象,所以有點類似於PHP的關聯數組,其實仍然是對象。
第7行,定了JSON以普通數組形式存在。
注意:由於Javascript是區分大小寫的,所以訪問JSON關聯數組對象時注意key的大小寫問題。
PHP與JSON格式數據交互時,第一步需要將PHP數組轉換為JSON格式的數據,可使用PHP5自帶的json_encode函數,當PHP解析傳遞過來的JSON格式數據時需要使用json_decode函數進行解析轉換為PHP數組,PHP轉換並解析JSON數據的實例代碼如下
復制代碼
代碼如下:
<?php
$json_arr
=
array('WebName'=>'PHP網站開發教程網','WebSite'=>'http://www.jb51.net');
$php_json
=
json_encode($json_arr);
echo
$php_json;
$php_json
=
json_decode($php_json);
print_r($php_json);
?>
說明:這里通過PHP定義了關聯數組,然後通過json_encode轉換為JSON格式的數據,通過echo語句可以看到轉換後的JSON對象,通過PHP
JSON解析函數json_decode可以將JSON格式的數據解析為PHP的關聯數組。如果編碼不正確,JSON中文會出現亂碼。如果你使用Editplus調試PHP,請注意保存文件時編碼將ANSI改為UTF8。
最後我們來看下完整的PHP
JSON交互實例
復制代碼
代碼如下:
<?php
$json_arr
=
array('WebName'=>'PHP網站開發教程網','WebSite'=>'http://www.jb51.net');
$php_json
=
json_encode($json_arr);
?>
<script
type="text/javascript">
var
php_json
=
<?=$php_json?>;
</script>
<script
type="text/javascript">
function
php_json_dis(php_json)
{
alert(php_json.WebName);
alert(php_json.WebSite);
}
php_json_dis(php_json);
</script>
至此,PHP通過json_encode和json_decode函數對JSON格式數據進行轉換和解析的實例就介紹完了。

③ PHP JSON 能給一個完整的例子嗎 簡單的就好

就是關聯數組

$response = array();
$response['timestamp'] = 'timestamp';
$response['requestType'] = 'requestType';
$response['parameters'] = 'parameters';
header("Content-type:text/html"); // or text/plain ,某些伺服器將預設格式設置為text/xml ,將在客戶端報錯"未組織好",但不影響程序執行
echo json_encode($response); //PHP內置函數將關聯數組系列化成Json字元串

④ 求指點,php如何取出json裡面的值,該json是對象和數組混合的,下面有例子。

$array='{"type":1,"total":3,"size":3,"content":[{"uid":"111","latitude":41.950414,"longitude":123.398404,""distance":0},{"uid":"222","latitude":41.801902,"longitude":123.504763,"distance":18714},{"uid":"444","latitude":41.811012364293,"longitude":123.45948890569,"distance":16304}
],"status":0}';
print_r(josn_decode($array,true));

⑤ php判斷數據是不是json格式示例

最新php判斷數據是不是JSON格式示例
以下是三零網為大家整理的最新php判斷數據是不是JSON格式示例的文章,希望大家能夠喜歡!
首先要記住json_encode返回的是字元串, 而json_decode返回的是對象
判斷數據不是JSON格式:
function is_not_json($str){
return is_null(json_decode($str));
}
判斷數據是合法的json數據: (PHP版本大於5.3)
function is_json($string) {
json_decode($string);
return (json_last_error() == JSON_ERROR_NONE);
}
json_last_error()函數返回數據編解碼過程中發生的錯誤
注意: json編解碼所操作字元串必須是UTF8的
例子
/**
* 解析json串
* @param type $json_str
* @return type
*/
function analyJson($json_str) {
$json_str = str_replace('\\', '', $json_str);
$out_arr = array();
preg_match('/{.*}/', $json_str, $out_arr);
if (!empty($out_arr)) {
$result = json_decode($out_arr[0], TRUE);
} else {
return FALSE;
}
return $result;
}
如果不是json則返回false

⑥ PHP如何接收JSON

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

一般而言,json會以字元串形式傳給PHP腳本,一般都是放在$_POST裡面,
<?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;

⑦ 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),其他東西(常量、私有變數、方法等等)都遺失了。

⑧ 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還原成了漢字。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

⑨ 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程序設計有所幫助。

熱點內容
php解壓程序 發布:2025-01-15 17:06:22 瀏覽:140
刷助力腳本 發布:2025-01-15 17:02:31 瀏覽:518
c盤里的用戶文件夾可以刪除 發布:2025-01-15 16:56:45 瀏覽:949
虛幻4編譯到哪裡 發布:2025-01-15 16:50:19 瀏覽:754
透明度漸變android 發布:2025-01-15 16:45:08 瀏覽:833
dos連接oracle資料庫 發布:2025-01-15 16:41:39 瀏覽:904
網路配置比較低怎麼做 發布:2025-01-15 16:35:38 瀏覽:361
android彈出鍵盤監聽 發布:2025-01-15 16:35:11 瀏覽:207
uz畫圖編程 發布:2025-01-15 16:32:44 瀏覽:883
ppt怎麼解壓 發布:2025-01-15 16:14:58 瀏覽:849