phpjson
㈠ php 處理json字元串的問題
$json='{"a":1,"b":2,"c":3,"d":4,"e":5}';
//已數組形式返回
$a=json_decode($json,TRUE);
//為對應鍵值的變數賦值
foreach($aas$k=>$v){
eval('$'.$k.'='.$v.';');
}
//實測有效
echo$a;
echo'<p>';
echo$b;
echo'<p>';
echo$c;
echo'<p>';
echo$d;
echo'<p>';
echo$e;
echo'<p>';
上面的方法也是正確的,怎麼取捨看你的程序需求
㈡ php 解析不了json
json_decode( ) 可以實現對 JSON 格式的字元串進行編碼
你的Json字元串有問題
<?php
$keys='{"result":0,"events":[{"event":6}]}';
$string=json_decode($keys,true);
mp($string);?>
結果:
array(2){
["result"]=>int(0)
["events"]=>array(1){
[0]=>array(1){
["event"]=>int(6)
}
}
}
㈢ php怎麼樣在json文件中指定位置追加數據,在【】中存儲,謝謝各位大佬
<?php
$jsonStr=file_get_contents("test.json");
$jsonStr=str_replace("vargoodsData=[","[",$jsonStr);
$jsonStr=str_replace("];","]",$jsonStr);
$jsonData=json_decode($jsonStr,true);
$data=array();
$data['a']='test';
$data['b']='12133';
array_push($jsonData,$data);
$json_string="vargoodsData=".json_encode($jsonData).";";
file_put_contents("test.json",$json_string);
?>
㈣ php獲取json裡面內容
$jsonString='....yourjson....';
$result=json_decode($jsonString,true);
$dataCount=count($result['data']);
if($dataCount>0){
for($i=0;$i<$dataCount;$i++){
//這里處理每一條物流狀態
}
}
㈤ PHP json格式處理
可以用正則
$jsonStr='{"db":"[{"0":"9","id":"9"},{"0":"9","id":"9"},]"}';
$jsonStr=preg_replace('/['"]([.*?])['"]/iU','$1',$jsonStr);//去除json串中,數組外的引號,將形如"[{...}]"替換成[{...}]
$jsonStr=preg_replace('/,s*]/',']',$jsonStr);//去除json串中多餘的逗號
字元串替換:
$jsonStr=str_replace('"[','[',$jsonStr);
$jsonStr=str_replace(',]"',']',$jsonStr);
㈥ php可以JSON輸出json格式嗎
php直接輸出json格式,有一個誤區,以為用echo json_encode($data);這樣就是輸出json數據了,沒錯這樣輸出文本是json格式文本而不是json數據,正確的寫法是應該加一句:
<?php
header('Content-type:text/json');
//這句是重點,它告訴接收數據的對象此頁面輸出的是json數據;
$json={"name":"yovae","password":"12345"};
//雖然這行數據形式上是json格式,如果沒有上面那句的話,它是不會被當做json格式的數據被處理的;
echo $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中數據
可以用$obj=>key 的方式直接讀取 也可以先轉換為數組 用遍歷數組的方法讀取
<?php
$json='{"a":100,"b":200,"c":300,"d":400,"e":500}';
//首先將json字元串轉換成關聯數組
$arr=json_decode($json,true);
//然後循環讀取數據
foreach($arras$item){
echo$item;
echo"<br/>";
}
?>
運行結果:
100
200
300
400
500
㈨ 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的內容
如果json是以對象的方式存儲於變數$json中,則這樣引用: $json->openid
如果json是以關聯數組的方式存儲於變數$json中,則這樣引用: $json['openid']
如果json是以字元串的方式存儲於變數$json中,則需要先轉換一下:
$a=json_decode($json);
print_r($a->openid);
或者
$a=json_decode($json,true);
print_r($a['openid']);