本文目录一览:
- json在php中的使用之如何转换json为数组
- php解析json数组问题。
- [PHP json多维数组追加数组怎么写?](#PHP json多维数组追加数组怎么写?)
- php怎样接收整个json数组
- [php json操作](#php json操作)
- [php 将json格式数据转换成数组的方法](#php 将json格式数据转换成数组的方法)
json在php中的使用之如何转换json为数组
看你怎么传递这个json的.
如果是字符串传递过去, 那么这个串要eval 下, 或者使用 json2.js 中的 JSON.parse(jsontext)
方法
附: json2.js 地址:
或者点击直接下载:
如果是JSONP 协议传递过去, 就可以直接使用;
建议采用jquery+ajax模式来处理json, 哪怕是同步的, 调用起来也比直接 post/get 来的方便.
php解析json数组问题。
$a = json_decode('{"status":0,"total":1,"size":1,"contents":[{"title":"111","location":[113.11509,23.012777],"city":"佛山市","create_time":1385386545,"geotable_id":38432,"address":"广东省佛山市禅城区汾江南路8号","province":"广东省","district":"禅城区","map_id":"1","uid":42504634,"coord_type":3,"type":0,"distance":370,"weight":0}]}', true);
json_decode
第二个参数true
解析出来就是:
array(4) {
["status"]= int(0)
["total"]= int(1)
["size"]= int(1)
["contents"]= array(1) {
[0]= array(14) {
["title"]= string(3) "111"
["location"]= array(2) {
[0]= float(113.11509)
[1]= float(23.012777)
}
["city"]= string(9) "佛山市"
["create_time"]= int(1385386545)
["geotable_id"]= int(38432)
["address"]= string(43) "广东省佛山市禅城区汾江南路8号"
["province"]= string(9) "广东省"
["district"]= string(9) "禅城区"
["map_id"]= string(1) "1"
["uid"]= int(42504634)
["coord_type"]= int(3)
["type"]= int(0)
["distance"]= int(370)
["weight"]= int(0)
}
}
}
这样的数组会取内容了吧
PHP json多维数组追加数组怎么写?
首先你需要把json转码为php可操作的数组类型(Array), 再进行追加数据.
$data = '{"msg":"200","名单":[{"名字":"小明"}]}';
$data = json_decode($data, true); // 转码为数组
$data['名单'][] = ['名字' => '新数据']; // 追加数据
// 或者:array_push($data['名单'], ['名字' => '新数据']);
$data = json_encode($data); // 重新转码为JSON字符串
php怎样接收整个json数组
PHP接收JSON格式的数据
在API服务中,目前流行采用json形式来交互。
给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array)
转化一下,前端就得到json格式的数据。
接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application/x-www-form-urlencoded。因此,对型如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-www-form-urlencoded。
php json操作
如果是PHP的话这样做:
$json = "{ \"code\":0, \"subcode\":0, \"message\":\"\", \"default\":0, \"data\": { \"app_848\" : { \"code\":0, \"subcode\":0, \"message\" : \"\", \"default\" : 0, \"data\": { \"Ishost\":0, \"items\":[], \"modvisitcount\":[ {\"mod\":0, \"todaycount\":76, \"totalcount\":204935}, {\"mod\":8, \"twlogincount\":0, \"todaycount\":0, \"totalcount\":2} ], \"twlogincount\":16, \"lastgettime\":1495949098 } } } }";
$jsonToArray = json_decode($json, true);
$modvisitcount = $jsonToArray["data"]["data"]["modvisitcount"];
$toDayCount = $modvisitcount[0]["todaycount"];
$toTalCount = $modvisitcount[0]["totalcount"];
//如果你是需要累积的话
$toDayCount = $toTalCount = 0;
foreach ($modvisitcount as $arr) {
$toDayCount += $arr["todaycount"];
$toTalCount += $arr["totalcount"];
}
php 将json格式数据转换成数组的方法
如下所示:
// json格式数据
$data = '[{"F_ModuleId":"1","F_ParentId":"0","F_EnCode":"SysManage"}]';
// 转换成数组
$arr = json_decode($data, true);
// 输出
var_dump($arr);
以上这篇php将json格式数据转换成数组的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。 您可能感兴趣的文章:
- PHP使用JSON和将json还原成数组
- 在PHP语言中使用JSON和将json还原成数组的方法
- PHP实现数组转JSon和JSon转数组的方法示例
- php json转换成数组形式代码分享
- php数组转成json格式的方法