当前位置:首页 » 编程语言 » phpjson实例

phpjson实例

发布时间: 2022-09-03 15:07:08

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格式数据交互实例代码详解

在PHP中解析JSON主要用到json_encode和json_decode两个PHP
JSON函数,比PHP解析XML方便很多,下面详细介绍下PHP
JSON的使用。
JSON基础介绍
JSON(javaScript
Object
Notation)
是一种轻量级的数据交换格式。
JSON主要有两种结构:
“名称/值”对的集合,在PHP中可以理解为关联数组
(associative
array)。
值的有序列表(An
ordered
list
of
values)。在PHP中可以理解为普通数组(array)。
对象是一个无序的“‘名称/值'对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值'
对”之间使用“,”(逗号)分隔。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、
null、对象(object)或者数组(array)。这些结构可以嵌套。
我目前对JSON的理解更偏向于数组,类似于PHP中的关联数组,你可以将PHP数组转换为JSON格式。
更多JSON的介绍请参考JSON官网和IBM关于JSON的介绍
PHP
JSON解析实例
PHP5.2开始已经将JSON作为PHP扩展的一部分,所以并不需要另外安装JSON。另外为了保证下面的PHP
JSON实例不出现中文乱码,请保证你的编码格式为UTF8。
JSON是Javascript的一部分,首先我们看下Javascript中如何定义JSON
复制代码
代码如下:
var
json_obj
=
{'WebName':'PHP网站开发教程网'};
alert(json_obj.WebName);
var
json_arr
=[{'WebName':'PHP网站开发教程网','WebSite':'http://www.jb51.net'},{'ArtTitle':'PHP
JSON实例讲解'}]
alert(json_arr[1].ArtTitle);
var
php_json
=
[['PHP网站开发教程网','http://www.jb51.net'],['文章标题','PHP
JSON实例讲解']];
alert(php_json[1][0]);
在这段JSON实例代码中我构建了所有的JSON形式,
第1行,定义了JSON以对象形式存在
第4行,定义了JSON以数组形式存在,嵌套了JSON对象,所以有点类似于PHP的关联数组,其实仍然是对象。
第7行,定了JSON以普通数组形式存在。
注意:由于Javascript是区分大小写的,所以访问JSON关联数组对象时注意key的大小写问题。
PHP与JSON格式数据交互时,第一步需要将PHP数组转换为JSON格式的数据,可使用PHP5自带的json_encode函数,当PHP解析传递过来的JSON格式数据时需要使用json_decode函数进行解析转换为PHP数组,PHP转换并解析JSON数据的实例代码如下
复制代码
代码如下:
<?php
$json_arr
=
array('WebName'=>'PHP网站开发教程网','WebSite'=>'http://www.jb51.net');
$php_json
=
json_encode($json_arr);
echo
$php_json;
$php_json
=
json_decode($php_json);
print_r($php_json);
?>
说明:这里通过PHP定义了关联数组,然后通过json_encode转换为JSON格式的数据,通过echo语句可以看到转换后的JSON对象,通过PHP
JSON解析函数json_decode可以将JSON格式的数据解析为PHP的关联数组。如果编码不正确,JSON中文会出现乱码。如果你使用Editplus调试PHP,请注意保存文件时编码将ANSI改为UTF8。
最后我们来看下完整的PHP
JSON交互实例
复制代码
代码如下:
<?php
$json_arr
=
array('WebName'=>'PHP网站开发教程网','WebSite'=>'http://www.jb51.net');
$php_json
=
json_encode($json_arr);
?>
<script
type="text/javascript">
var
php_json
=
<?=$php_json?>;
</script>
<script
type="text/javascript">
function
php_json_dis(php_json)
{
alert(php_json.WebName);
alert(php_json.WebSite);
}
php_json_dis(php_json);
</script>
至此,PHP通过json_encode和json_decode函数对JSON格式数据进行转换和解析的实例就介绍完了。

③ PHP JSON 能给一个完整的例子吗 简单的就好

就是关联数组

$response = array();
$response['timestamp'] = 'timestamp';
$response['requestType'] = 'requestType';
$response['parameters'] = 'parameters';
header("Content-type:text/html"); // or text/plain ,某些服务器将缺省格式设置为text/xml ,将在客户端报错"未组织好",但不影响程序执行
echo json_encode($response); //PHP内置函数将关联数组系列化成Json字符串

④ 求指点,php如何取出json里面的值,该json是对象和数组混合的,下面有例子。

$array='{"type":1,"total":3,"size":3,"content":[{"uid":"111","latitude":41.950414,"longitude":123.398404,""distance":0},{"uid":"222","latitude":41.801902,"longitude":123.504763,"distance":18714},{"uid":"444","latitude":41.811012364293,"longitude":123.45948890569,"distance":16304}
],"status":0}';
print_r(josn_decode($array,true));

⑤ php判断数据是不是json格式示例

最新php判断数据是不是JSON格式示例
以下是三零网为大家整理的最新php判断数据是不是JSON格式示例的文章,希望大家能够喜欢!
首先要记住json_encode返回的是字符串, 而json_decode返回的是对象
判断数据不是JSON格式:
function is_not_json($str){
return is_null(json_decode($str));
}
判断数据是合法的json数据: (PHP版本大于5.3)
function is_json($string) {
json_decode($string);
return (json_last_error() == JSON_ERROR_NONE);
}
json_last_error()函数返回数据编解码过程中发生的错误
注意: json编解码所操作字符串必须是UTF8的
例子
/**
* 解析json串
* @param type $json_str
* @return type
*/
function analyJson($json_str) {
$json_str = str_replace('\\', '', $json_str);
$out_arr = array();
preg_match('/{.*}/', $json_str, $out_arr);
if (!empty($out_arr)) {
$result = json_decode($out_arr[0], TRUE);
} else {
return FALSE;
}
return $result;
}
如果不是json则返回false

⑥ PHP如何接收JSON

对于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如何解析这种JSON

目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。
从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。
一、json_encode()
该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);

结果为
{"a":1,"b":2,"c":3,"d":4,"e":5}

由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。

二、索引数组和关联数组
PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。
由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。
比如,现在有一个索引数组
$arr = Array('one', 'two', 'three');
echo json_encode($arr);

结果为:

["one","two","three"]

三、类(class)的转换
下面是一个PHP的类: class Foo { const ERROR_CODE = '404'; public $public_ex = 'this is public'; private $private_ex = 'this is private!'; protected $protected_ex = 'this should be protected'; public function getErrorCode() { return self::ERROR_CODE; } }
现在,对这个类的实例进行json转换:

$foo = new Foo;
$foo_json = json_encode($foo);
echo $foo_json;

输出结果是
{"public_ex":"this is public"}

可以看到,除了公开变量(public),其他东西(常量、私有变量、方法等等)都遗失了。

⑧ 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文件的方法

本文实例讲述了PHP生成及获取JSON文件的方法。分享给大家供大家参考,具体如下:
首先定义一个数组,然后遍历数据表,把相应的数据放到数组中,最后通过json_encode()转化数组
json_encode()
函数的功能是将数值转换成
JSON
数据存储格式。
putjson.php:
<?php
//
生成一个PHP数组
$data
=
array();
$data[0]
=
array('1','吴者然','onestopweb.cn');
$data[1]
=
array('2','何开','iteye.com');
//
把PHP数组转成JSON字符串
$json_string
=
json_encode($data);
//
写入文件
file_put_contents('test.json',
$json_string);
?>
有同名的
JSON
文件则覆盖,没有则创建。
生成或覆盖的
JSON
如下:
复制代码
代码如下:[["1","\u811A\u672C\u4E4B\u5BB6","www.jb51.net"],["2","\u7F16\u7A0B\u5F00\u53D1","jb51.net"]]
然后,把
JSON
文件中的数据读取到PHP变量中。
getjson.php:
<?php
//
从文件中读取数据到PHP变量
$json_string
=
file_get_contents('test.json');
//
把JSON字符串转成PHP数组
$data
=
json_decode($json_string,
true);
//
显示出来看看
var_mp($data);
echo
'<br><br>';
print_r($data);
echo
'<br><br>';
echo
'编号:'.$data[0][0].'
姓名:'.$data[0][1].'
网址:'.$data[0][2];
echo
'<br>';
echo
'编号:'.$data[1][0].'
姓名:'.$data[1][1].'
网址:'.$data[1][2];
?>
效果图:
PS:这里再为大家推荐几款比较实用的json在线工具供大家参考使用:
在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat
在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson
json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat
C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP中json格式数据操作技巧汇总》、《PHP针对XML文件操作技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。

热点内容
抽盒机算法 发布:2025-01-15 18:31:07 浏览:252
万网云服务器云虚拟主机 发布:2025-01-15 18:20:58 浏览:946
手动安装交叉编译链 发布:2025-01-15 18:15:30 浏览:565
java调用clinux 发布:2025-01-15 18:13:02 浏览:294
如何给孩子配置一份保险 发布:2025-01-15 18:07:53 浏览:457
思科模拟器ftp配置 发布:2025-01-15 18:01:53 浏览:198
wd软件如何修改密码 发布:2025-01-15 17:59:57 浏览:716
公共代理服务器地址 发布:2025-01-15 17:59:53 浏览:819
android文件图片 发布:2025-01-15 17:39:44 浏览:207
linux的路径怎么写 发布:2025-01-15 17:18:49 浏览:185