本文目錄一覽:
- 1、PHP json多維數組追加數組怎麼寫?
- 2、android怎麼解析PHP返回的多維JSON數組格式
- 3、PHP怎麼把多個數組揉成一個json字符串?
- 4、php如何輸出多行json數據?
- 5、php怎樣接收整個json數組
- 6、php 循環輸出 json 數組
PHP json多維數組追加數組怎麼寫?
首先你需要把json轉碼為php可操作的數組類型(Array), 再進行追加數據.
$data = ‘{“msg”:”200″,”名單”:[{“名字”:”小明”}]}’;
$data = json_decode($data, true); // 轉碼為數組
$data[‘名單’][] = [‘名字’ = ‘新數據’]; // 追加數據
// 或者: array_push($data[‘名單’], [‘名字’ = ‘新數據’]);
$data = json_encode($data); // 重新轉碼為JSON字符串
android怎麼解析PHP返回的多維JSON數組格式
首先貼一段示例代碼:
?php
include “con_db.php”;//連接數據庫
$sql=”select * from note order by note_date desc limit “.($index*10).”,10″; //sql語句
$result=mysql_query($sql);//獲得結果
$note;$i=0; //初始化變量
while($infor=mysql_fetch_array($result))
{
//把結果放到一個一維數組裡
$note[“id”]=$infor[‘note_id’];
$note[“content”]=$infor[‘note_content’];
$note[“date”]=$infor[‘note_date’];
$note[“username”]=$infor[‘username’];
//放到二維數組裡
$notes[$i++]=$note;
}
echo json_encode($notes );
?
輸出結果:
[{“id”:”12″,”content”:”u662f”,”date”:”2014-05-24 09:31:52″,”username”:”u532f”},
{“id”:”31″,”content”:”u642f”,”date”:”2014-05-24 09:31:49″,”username”:”u322f”},
{“id”:”70″,”content”:”u692f”,”date”:”2014-05-24 09:31:48″,”username”:”u132f”}]
你會發現應該輸出的漢字變成了unicode字符集.
這時我們就要用到urlencode的方法,把漢字用urlencode方法編碼,轉化為json之後再用urldecode解碼.看如下例子:
?php
$h =urlencode(“開心”);
echo $h;
$x =urldecode($h);
echo $x;
?
輸出結果:
%BF%AA%D0%C4開心
這樣通過中間過程的編碼和解碼,轉化成json的過程便不會自動把漢字變成Unicode字符集了.所以最後的方法為:
?php
while($infor=mysql_fetch_array($re))
{
$note[“id”]=$infor[‘note_id’];//數字不需要編碼
$note[“content”]=urlencode($infor[‘note_content’]);//漢字需要編碼
$note[“date”]=$infor[‘note_date’];
$note[“username”]=urlencode($infor[‘username’]);
$notes[$i++]=$note;
}
echo urldecode(json_encode($notes ));//轉化成json之後再用urldecode解碼為漢字
?
結果如下:
[{“id”:”22″,”content”:”文章”,”date”:”2014-05-24 09:31:52″,”username”:”王”},
{“id”:”21″,”content”:”內容”,”date”:”2014-05-24 09:31:49″,”username”:”李”},
{“id”:”20″,”content”:”可以”,”date”:”2014-05-24 09:31:48″,”username”:”馮”}]
參考資料:
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;
?
擴展資料:
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數據?
對於特定的不能使用json_decode的json的話,建議直接輸出
比如:
?php echo ‘{‘; //假設你的數據是從數據庫中讀取 $query = mysql_query(查詢語句); while($row = mysql_fetch_array($query)){ echo $row[‘字段’]; //在這裡構造出json顯示的數據 } echo ‘}’;?希望可以幫到你
php怎樣接收整個json數組
PHP接收JSON格式的數據
在API服務中,目前流行採用json形式來交互。
給前端調用的接口輸出Json數據,這個比較簡單,只需要組織好數據,用json_encode($array) 轉化一下,前端就得到json格式的數據。
接收前端提交的json數據稍微複雜一點,原因是:PHP默認識別的數據類型是application/x-標準的數據類型。因此,對型如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-標準的數據類型。
php 循環輸出 json 數組
?php
$Tdata='[{“A_Name”:”a1″,”ICNo”:””,”A_ContNo”:””,”A_QQNo”:””},{“A_Name”:”a2″,”ICNo”:””,”A_ContNo”:””,”A_QQNo”:””},{“A_Name”:”a3″,”ICNo”:””,”A_ContNo”:””,”A_QQNo”:””}]’;
$arr=json_decode($Tdata,true);
//var_dump($arr);
echo stripcslashes ($arr[0][A_Name]);
?
上面的方法可以打印輸出,json_decode($Tdata)輸出的結果是一個對應,而json_decode($Tdata,true)輸出的是一個數組
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/290833.html