phparrayjson
1. php 將json格式數據轉換成數組的方法
如下所示:
//json格式數據
$data
=
'[{
"F_MoleId":
"1",
"F_ParentId":
"0",
"F_EnCode":
"SysManage",}]';
//轉換成數組
$arr
=
json_decode($data,true);
//輸出
var_mp($arr);
以上這篇php
將json格式數據轉換成數組的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:PHP使用JSON和將json還原成數組在PHP語言中使用JSON和將json還原成數組的方法PHP實現數組轉JSon和JSon轉數組的方法示例php
json轉換成數組形式代碼分享php數組轉成json格式的方法
2. php怎樣接收整個json數組
json_decode
PHP json_decode() 函數用於對 JSON 格式的字元串進行解碼,並轉換為 PHP 變數。
語法
mixedjson_decode($json[,$assoc=false[,$depth=512[,$options=0]]])
參數
json_string: 待解碼的 JSON 字元串,必須是 UTF-8 編碼數據
assoc: 當該參數為 TRUE 時,將返回數組,FALSE 時返回對象。
depth: 整數類型的參數,它指定遞歸深度
options: 二進制掩碼,目前只支持 JSON_BIGINT_AS_STRING 。
3. php 轉json 加引號
請輸入你的答案當我們在結合php和javascript實現某些功能時,經常會用到json。json是js的一種數據格式,可以直接被js解析。而php無法直接讀取json數據,但是php提供了json_decode函數來對json數據進行轉化,從而可以被php腳本訪問。同時,php也提供了json_encode函數來將數據轉化成json格式。那麼,js中的原生json與php中通過json_encode函數轉化後的json是否完全一樣呢?今天,站長就和大家一起來探討這個問題。我們通過php向javascript傳遞數組數據時,通常要將其轉化為json格式,一遍javascript來獲取,那麼我們就以數組為例,先來看一下兩者之間的區別。1、一維數組考慮php數組$array=array("1","2","3");使用json_encode函數轉化後,對應的json字元串為["1","2","3"]。細心的朋友很快就發現,轉化後得到的json字元串,就是javascript中的數組形式,那麼是否可以用js的數組訪問方式來訪問呢?當然是可以的,但是你將這個json字元串傳遞給給js時,需要使用urlencode函數對其編碼,如:')"id="aj">訪問json我們可以用下面的js代碼來驗證:functionshow(str){varjobj=eval_r(decodeURI(str));alert(jobj[2]);}大家自己試一試就會發現,是的,可以用js中訪問一維數組的方式來訪問它。eval方法將json字元串解釋為json對象,因為傳遞過來的是字元串,不轉化的話,你得到將是字元串中第三個字元的值。我們再來對這個一維數組做一下變化,我們發現上面的一維數組沒有指定索引,所以它默認為數字索引,現在我們來給它加上鍵名:考慮php數組$array=array('a'=>'1','b'=>'2','c'=>'3');使用json_encode函數轉化後,對應的json字元串為{"a":"1","b":"2","c":"3"}。我們很快就發現了其中的不同,最明顯的就是字元串兩端的[]變成了{},那麼這個字元串是否也可以按上面那樣處理後被js訪問呢?我們不防試一試:'1','b'=>'2','c'=>'3')));?>')"id="aj">訪問jsonfunctionshow(str){varjobj=eval_r(decodeURI(str));alert(jobj.a);}大家如果動手試了就知道,點擊鏈接後,沒有出現彈窗。為什麼呢?是PHP生成的json字元串格式不對嗎?不是的,這是我們在使用eval函數解釋的時候,出錯了。把上面的函數代碼換成:functionshow(str){varjobj=eval_r('('+decodeURI(str)+')');alert(jobj.a);}再試試吧!怎麼樣,可以訪問了吧。這告訴我們,在使用eval方法處理帶有鍵名的json字元串時,需要在字元串兩端加速括弧。至於為什麼,站長也不知道,站在巨人的肩膀上而已。這里要注意,盡管PHP生成的json字元串{"a":"1","b":"2","c":"3"}被傳遞給js後無法被直接解釋為json格式,但是如果你在js中使用該字元串直接創建json數據,是可以的。試試下面的代碼吧:varjobj={"a":"1","b":"2","c":"3"};alert(jobj.b);2、二維數組二維數組在PHP用的應用非常廣泛,因此了解二維數組轉化後的json格式非常重要。有了上面的例子做鋪墊,下面站長就直接給出示例代碼:')"id="aj">訪問jsonfunctionshow(str){varjobj=eval_r(decodeURI(str));alert(jobj[0][0]);}大家運行,會發現,這跟一維數組差不多,這是不帶鍵名的例子,因此在show函數中,去掉字元串兩端的括弧也是可以的。下面,我們對二維數組進行一下變化,在第二維中加入鍵名,請看示例代碼:'1',"b"=>'2','3'))));?>')"id="aj">訪問jsonfunctionshow(str){varjobj=eval_r('('+decodeURI(str)+')');alert(jobj[0].a);}大家運行代碼後,發現,這里我們訪問json數據的方式有點不一樣。上面我們用的是alert(jobj[0][0]);而這里我們用的是alert(jobj[0].a);不要問我為什麼,就是這樣。這就是json的訪問方式。上面的例子,我們對二維數組的第二維添加了鍵名,下面我們對第一維添加鍵名,看看訪問方式又有什麼不同:array('1','2','3'))));?>')"id="aj">訪問jsonfunctionshow(str){varjobj=eval_r('('+decodeURI(str)+')');alert(jobj.k[1]);}這里我們使用的是jobj.k[1]這樣的方式,大家一定已經發現了,只要數組中含有鍵名,當數組被轉化為json格式後,就要使用json對象.鍵名這樣的方式來訪問該鍵下的元素,上面的例子中,k鍵下的數組元素是數字索引,所以在json中使用k[1]這樣的方式來訪問。下面,我們對數組的第一維和第二維都添加鍵名:array("a"=>'1','2','3'))));?>')"id="aj">訪問jsonfunctionshow(str){varjobj=eval_r('('+decodeURI(str)+')');alert(jobj.k.a);}正如上面所提到的,只要含有鍵名,就必須以json對象.鍵名的方式來訪問,如果有多個鍵就要用json對象.鍵名.鍵名,不要問我為什麼,這就是json的訪問方式,只有javascript的發明者能向你解釋,他為什麼要這樣規定。結論:1、將php中的數組轉化為json字元串傳遞給js時。如果數組沒有指定鍵名,那麼可以直接使用js的eval方法將其轉化為json格式供js處理;如果數組中含有鍵名,那麼在使用eval方法處理時,需要使用()將json字元串括起來。2、如果數組中含有鍵名,轉化為json字元串後,在js中要用json對象.鍵名.鍵名的方式來訪問,如果是數字索引則用json對象[1]或者json對象.鍵名[1]這樣的方式。上面,我們主要討論了,在PHP向js傳遞json字元串時,需要注意的事項。下面我們再來討論,用js向php傳遞json字元串時需要如何處理。聰明的你肯定已經知道了,只要將json數據用引號引起來作為字元串傳遞給PHP【通常用ajax進行】就可以用json_decode函數解碼了。沒錯!就是這樣!但是在構造json字元串的時候一定要仔細,如果你不經常構造json字元串,那麼不妨用echojson_encode(array('k'=>array("a"=>'1','2','3')))這樣的方式,查看你需要構造的目標字元串的json格式。這樣你就可以在js中根據你想要的結果來構造了!好了,今天對php和js之間如何使用json數據進行通信就討論到這里,大家可以自己再試試將php的對象類型進行json編碼後如何傳遞給js。
4. PHP生成多維數組的json格式
php中將數組格式換換為json格式可以使用 json_encode函數。
示例代碼如下:
<?php
//定義數組
$arr=array('city'=>array('北京','上海','廣州'),'order'=>array(1,2,3));
//將數組轉換為json格式
var_mp(json_encode($arr));
?>
json格式效果:
5. php 判斷array()數組是否為json數組對象格式
是否可以這樣:
調用json_encode轉換,以後轉換是否失敗(返回FALSE)為判斷
6. 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格式數據進行轉換和解析的實例就介紹完了。
7. PHP 二維索引數組怎麼轉化成json字元串數組
json_encode()就是將PHP數組轉換成Json
如:$array = array("name" => "Eric","age" => 23); echo json_encode($array);
程序將列印出 : {「name」:」Eric」,」age」:23}
8. PHP json多維數組追加數組怎麼寫
首先你需要把json轉碼為php可操作的數組類型(Array), 再進行追加數據.
$data='{"msg":"200","名單":[{"名字":"小明"}]}';
$data=json_decode($data,true);//轉碼為數組
$data['名單'][]=['名字'=>'新數據'];//追加數據
//或者:array_push($data['名單'],['名字'=>'新數據']);
$data=json_encode($data);//重新轉碼為JSON字元串