当前位置:首页 » 编程语言 » php处理json

php处理json

发布时间: 2022-07-21 10:21:37

‘壹’ php 输出json及显示json中的中文汉字详解及实例

php
输出json及显示json中的中文汉字
在php中,我们经常需要将数组输出json,只需要使用json_encode函数处理一下数组即可,但有的时候数组里面有中文,使用json_encode函数处理后中文字符被编码成了Unicode,如何才能在json中显示中文呢?请看下文。
首先介绍一下php输出json格式:
一种最简单的用法,就是把数组直接输出为json,如下:
<?php
$arr
=
array('p1'=>'ni"hao','p2'=>2,'ch'=>'码农你好!');
$json
=
json_encode($arr);
echo
$json;
?>
输出的结果为:
{"p1":"ni\"hao","p2":2,"ch":"\u7801\u519c\u4f60\u597d\uff01"}
这里要注意:
双引号在json中会被自动编码为\",这个很好理解,js中字符串中是不允许出来单引号、双引号和反斜杠的。
中文字符被编码成了Unicode
如果是写接口,那直接这样输出就够了,中文无需去做处理。等到了客户端,再去把Unicode的中文转成汉字即可。但如果要在服务器端直接输出汉字出来,那我们可以做如下处理。
<?php
$arr
=
array('p1'=>'nihao','p2'=>2,'ch'=>'码农你好!');
$json
=
json_encode($arr);
echo
decodeUnicode($json);
function
decodeUnicode($str){
return
preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
create_function(
'$matches',
'return
mb_convert_encoding(pack("H*",
$matches[1]),
"UTF-8",
"UCS-2BE");'
),
$str);
}
?>
输出:
{"p1":"ni\"hao","p2":2,"ch":"码农你好!"}
这个操作很简单,其实就是把输出结果匹配一下,把Unicode还原成了汉字。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

‘贰’ 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);

‘叁’ json如何接收php处理数据

对于json,PHP有对应的方法进行操作。


一般而言,json会以字符串形式传给PHP脚本,一般都是放在$_POST里面,

<?php
//接收
$json_parameter=$_POST['json_str'];

//处理,变成数组
$array=json_decode($json_parameter);

//PHP把数组数据变成json格式字符串,发给页面
$demo=array(
'key'=>'value',
'key2'=>'value2'
);
$demo_json=json_encode($demo);//格式是{"key":"value","key2":"value2"}
echo$demo_json;

‘肆’ php 接收JS过来的JSON数据

用php处理json数据,需要用json_decode函数转成json对象,再取其属性的值.

完整的php程序如下

‘伍’ PHP 如何处理一串JSON 返回给我一个ID数组呢

<?php
$arr='[{"id":1,"gid":0,"title":"小红"},{"id":2,"gid":0,"title":"小明"},{"id":3,"gid":0,"title":"小蓝"},{"id":4,"gid":0,"title":"小白"},{"id":5,"gid":7,"title":"小嘿"},{"id":6,"gid":8,"title":"小网"},{"id":7,"gid":9,"title":"小王"},{"id":8,"gid":4,"title":"小2"},{"id":9,"gid":3,"title":"小3"},{"id":10,"gid":2,"title":"小8"},{"id":11,"gid":2,"title":"小7"},{"id":12,"gid":7,"title":"小7"}]';
$arr_list=json_decode($arr,1);
$id_pid=null;
$list=null;
foreach($arr_listas$key=>$val){
$id_pid[$val['id']]=$val['gid'];
$list[$val['id']]=$val;
}
functiongetChild($id,$id_pid,$child=array()){
if(count($child)==0)$child[]=$id;
$res=array_keys($id_pid,$id);

if(count($res)>0){
$child=array_merge($child,$res);
foreach($resas$val){
$child=getChild($val,$id_pid,$child);
}
}

return$child;
}

$id=3;
echo'<pre>';
print_r(getChild($id,$id_pid));
echo'</pre>';
exit();

结果:

‘陆’ php解析json数据

<?php
$json = '{"APPCount": 2,"data": [
{
"originalID": "991",
"APPName": "优酷",
"APPType": "APK",
"category": "视频",
"versionName": "3.8",
"versionCode": "5",
"packageName ": "cn.dsp.youku",
" APPStatus": "待审核",
"testReportURL": "",
"downloadCount": 0
},
{
"originalID": "992",
"APPName": "优酷",
"APPType": "APK",
"category": "视频",
"versionName": "3.8",
"versionCode": "5",
"packageName ": "cn.dsp.youku",
" APPStatus": "安全测评未通过",
"testReportURL": "http: //192.168.0.106: /SecurityTest/sdsd.pdf",
"downloadCount": 0
}
]
}';

$decode = json_decode($json,true);
echo $decode['data'][1]['testReportURL'];

‘柒’ php中怎么转换json字符串

php里面有2个函数:json_encode和json_decode
查一下手册就可以解决了。
json_decode($str,true)可以得到数组,第二参数不加默认为false,得到对象。这样试试呢😊希望能帮到你,我还在后盾人线下面授培训上课学习呢现在没时间,有不会的可以问我,加油吧(/ω\)害羞

‘捌’ PHP 如何解析 json

alert(send);

ajax=tel();
ajax.open("post", "setLine.class.php",true);
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

// 改成这样就可以了
ajax.send({

'lineA':JSON.stringify(send);

});

‘玖’ 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>';

上面的方法也是正确的,怎么取舍看你的程序需求

热点内容
request获得服务器ip 发布:2025-02-28 09:57:56 浏览:821
c读取数据库中图片 发布:2025-02-28 09:52:50 浏览:650
爱豆里的视频怎么缓存 发布:2025-02-28 09:33:47 浏览:858
境外服务器和虚拟ip 发布:2025-02-28 09:31:33 浏览:655
液晶电视存储器 发布:2025-02-28 09:23:50 浏览:920
学习linux先学什么 发布:2025-02-28 09:22:16 浏览:347
在cmd输什么可以查电脑配置 发布:2025-02-28 09:08:25 浏览:309
搭建共享文件存储空间 发布:2025-02-28 09:03:48 浏览:825
android线程handler 发布:2025-02-28 09:03:44 浏览:408
短链接生成源码 发布:2025-02-28 08:56:43 浏览:775