Ⅰ 如何在php中返回Json数据
不对。
返回json用的json_encode()方法没错,但是需要在头部声明格式。
php返回需要用json_encode()方法来将需要转换的字符串转换成json编码格式(注意:仅仅更换文件内容,而返回的文件依然为文本格式且编码为gtk)
所以,这里需要在php头部声明
header('Content-Type:text/json;charset=utf-8');
JSON(JavaScriptObject Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
json通常被作为配置文件,常见还有.ini
Ⅱ php解析json并输出到html页面
用json_decode()将json字符串转化成php数组,然后直接循环数组取出值即可。
<?php
$content= file_get_contents('获取json字符串的url');
$content = json_decode($content);//将json字符串转化成php数组
foreach ($content as $key ) {//循环数组
echo '<li>' . $key['city'] . '</li>';
echo '<li>' . $key['city_en'] . '</li>';
echo '<li>' . $key['date_y'] . '</li>';
echo '<li>' . $key['week'] . '</li>';
}
Ⅲ php如何输出中文json格式字符串
php如何输出中文json格式字符串
如何对json格式的字符串进行转换,php提供了两个函数:
json_encode 对变量进行 JSON 编码
json_decode 对 JSON 格式的字符串进行编码
下面看个实例:
$arr = ['a', 'b', 'c'];echo json_encode($arr);
输出为:
["a","b","c"]
但是,当我们在数组中放入中文的时候,就会出现问题:
$arr = [ '世界', '你好',
];echo json_encode($arr);
输出的结果为:
["\u4e16\u754c","\u4f60\u597d"]
这个结果显然不是我们想要的,但是为什么出现这个呢?
因为当我们的值中包含中文时,php对他进行json编码时底层会对中文进行unicode编码,导致结果不可读,那该怎么解决呢?
方法一
可以利用 urlencode 和 urldecode 方法绕过这个转码为 unicode 的过程,先将中文字段进行urlencode,然后json_encode,最后再用urldecode处理结果,便可以正常显示中文。具体代码如下:
$arr = [ '世界', '你好',
];echo urldecode(json_encode(array_map('urlencode', $arr)));
输出结果为:
["世界","你好"]
方法二
自PHP5.4版本,官方就已经给Json新增了一个选项: JSON_UNESCAPED_UNICODE。加上这个选项后,就不会自动把中文编码了。具体代码如下:
$arr = [ '世界', '你好',
];echo json_encode($arr, JSON_UNESCAPED_UNICODE);
["世界","你好"]
看吧,这才是我们想要的结果 :)
Ⅳ PHP是怎么返回json格式的数据
最常用的是将一个数组组织成json格式
$arr=array("err"=>0,"errMsg"=>"success","data"=>array("a"=>"b","c"=>1));
echojson_encode($arr);
返回json类似:
{"error":0,"errMsg":"success","data":{"a":"b","c":1}}
Ⅳ php连接数据库后如何输出转换为json格式API,求详细解答,
<?php
$link=mysql_connect('localhost','root','root');
mysql_select_db('test',$link);
$sql="select*frombooks";
$result=mysql_query($sql);
//将结果集转为数组,每次取一行
while($row=mysql_fetch_assoc($result)){
$rows[]=$row;
}
echojson_encode($rows);
exit;
?>