本文目录一览:
- 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)输出的是一个数组