php输出json类,php写json接口

发布时间:2023-12-08

php输出json类,php写json接口

更新:2022-11-19 18:53

本文目录一览:

  1. php怎么输出json数组?
  2. php可以JSON输出json格式吗
  3. json文本文档里的数据用php怎么输出
  4. PHP 输出json
  5. php 输出json及显示json中的中文汉字详解及实例
  6. php如何输出中文json格式字符串

php怎么输出json数组?

对于特定的不能使用json_decode的json的话,建议直接输出。 比如:

<?php
echo '{';
//假设你的数据是从数据库中读取
$query = mysql_query(查询语句);
while($row = mysql_fetch_array($query)){
    echo $row['字段']; //在这里构造出json显示的数据
}
echo '}';
?>

希望可以帮到你。

php可以JSON输出json格式吗

php直接输出json格式,有一个误区,以为用echo json_encode($data);这样就是输出json数据了,没错这样输出文本是json格式文本而不是json数据,正确的写法是应该加一句:

<?php
header('Content-type:text/json');
//这句是重点,它告诉接收数据的对象此页面输出的是json数据;
$json = {"name":"yovae","password":"12345"};
//虽然这行数据形式上是json格式,如果没有上面那句的话,它是不会被当做json格式的数据被处理的;
echo $json;
?>

你看过后很简单吧以后不会可以向我一样经常到后盾人平台找找相关教材看看就会了,希望能帮到你,给个采纳吧谢谢( ̄(エ) ̄)

json文本文档里的数据用php怎么输出

首先,把PHP数组中的数据写入JSON文件。

<?php
// 生成一个PHP数组
$data = array();
$data['a'] = 'test';
$data['b'] = 'bbb';
// 把PHP数组转成JSON字符串
$json_string = json_encode($data);
// 写入文件
file_put_contents('test.json', $json_string);
?>

然后,把JSON文件中的数据读取到PHP变量中。

<?php
// 从文件中读取数据到PHP变量
$json_string = file_get_contents('test.json');
// 把JSON字符串转成PHP数组
$data = json_decode($json_string, true);
// 显示出来看看
var_dump($data);
?>

PHP 输出json

<?php
$Json = '[
    "ActionScript",
    "AppleScript",
    "Asp",
    "Python",
    "Scheme"
]';
$Arr = json_decode($Json, true);
echo $Arr[0]; //输出ActionScript,其他几个同理
?>

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格式字符串

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编码,导致结果不可读,那该怎么解决呢?

方法一

可以利用 urlencodeurldecode 方法绕过这个转码为 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);

输出结果为:

["世界","你好"]

看吧,这才是我们想要的结果 :)