php json_encode函数是专门处理php复杂点的数据的,其实本人觉得就是针对字符串和数组的,json_encode有个特点就是不能对gb2312中文进行编码,而且,对utf8编码后,不会产生中文,而是一串奇怪的字符串,这样的数据在前台是很难处理的。唉,这也是中国人学程序的悲哀。当然,这个问题是可以通过其他函数来解决的。现在我们讨论的是json数据对多维数组的处理,假设一个数组是多维的,我们 不大可能一遍遍的去遍历他,以下一个方法非常方便的解决中文和多维的问题:
/**
* 提供两个方法,旨在解决中文乱码的问题
* 只对utf8编码有效
* json_encode 仅对双引号,斜杠,反斜杠转义
* addslashes 转义单双引号,以及反斜杠
* addcslashes 转义指定字符或者指定字符范围
*/
//方法-
function customJsonEncode($a = false) {
if (is_null($a)) return 'null';
if ($a === false) return 'false';
if ($a === true) return 'true';
if (is_scalar($a)) {
if (is_float($a)) {
// Always use "." for floats.
return floatval(str_replace(",", ".", strval($a)));
}
if (is_string($a)) {
static $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
}else{
return $a;
}
}
$isList = true;
for ($i = 0, reset($a); $i < count($a); $i++, next($a)) {
if (key($a) !== $i) {
$isList = false;
break;
}
}
$result = array();
if ($isList) {
foreach ($a as $v) $result[] = customJsonEncode($v);
return '[' . join(',', $result) . ']';
} else {
foreach ($a as $k => $v) $result[] = customJsonEncode($k).':'.customJsonEncode($v);
return '{' . join(',', $result) . '}';
}
}
// 方法二 不成熟
function loop($arr){
foreach($arr as $var =>$value){
if(!is_array($value)){
$arr[$var]=urlencode($arr[$var]);
}else{
$arr[$var]=loop($arr[$var]);
}
}
return $arr;
}
function jsonencode($arr){
if(is_array($arr)){
$arr=loop($arr);
}else{
$arr=addcslashes($arr,'');
$arr=urlencode($arr);
}
$arr=json_encode($arr);
return urldecode($arr);
}
第二个方法是本人自己写的,功能差不多了,就差转义下字符了。建议用第一个吧,虽然看不大懂,不过很好用就是了。
分享到:
相关推荐
可能的内容包括如何实例化`Json`类,以及如何使用`encode`方法将各种类型的PHP数据结构转换为JSON字符串。例如,它可能演示了如何处理数组、对象、NULL值、布尔值等。 ```php require_once 'Json.php'; // 示例...
在提供的压缩包文件中,`json_sample.rar`可能包含了一些JSON操作的示例代码或测试用例,展示了如何使用Services_JSON库来处理JSON数据。而`PHP4_jsonEncode_jsonDecode.zip`可能包含了具体的Services_JSON库的源...
总的来说,将PHP对象转换为JSON字符串是通过json_encode()函数完成的,对于对象,可以考虑实现JsonSerializable接口或使用特定选项来控制序列化行为。在实际开发中,还要注意错误处理和编码选项的设置,以确保数据...
PHP 读写 JSON 文件是指使用 PHP 语言来读取和写入 JSON(JavaScript Object Notation)文件的过程。JSON 文件是一种轻量级的数据交换格式,它使用人类可读的文本来存储和传输数据。PHP 语言提供了多种方式来读写 ...
标题中的“一个使用json生成phpclass代码的工具”指的是一个特定的软件或脚本,它能够根据JSON(JavaScript Object Notation)数据格式自动生成PHP类(Class)代码。JSON是一种轻量级的数据交换格式,易于人阅读和...
标题“PHP实现的json类实例”和描述“主要介绍了PHP实现的json类,实例分析了php实现json类的方法,具有一定参考借鉴价值,需要的朋友可以参考下”暗示了文章将重点讨论如何在PHP中实现JSON类,以及它的实例方法。...
php-jsonpatch, PHP的JSON补丁实现 面向PHP的 这是在PHP中编写的 JSON补丁的实现。通过 Composer 安装$ composer require php-jsonpatch/php-jsonpatch用法现在,你可以通过可用的Comp
- 使用 `encode` 方法,你可以将PHP的数据结构(如数组或对象)转换为JSON字符串。例如,一个关联数组 `$data = array('name' => 'John', 'age' => 30)` 可以编码为JSON对象 `{"name": "John", "age": 30}`。 - 在...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言的习惯,包括C、C++、C#、Java、JavaScript、Perl、Python等。PHP从5.2版本开始内置了...
- 读我(Readme)文件,详细说明了库的安装、使用方法和注意事项。 - 许可证文件,规定了库的使用和分发条款。 在实际应用中,开发者需要先安装这个库,通常是通过Composer(PHP的依赖管理工具)。然后,他们可以...
使用jQuery的$.ajax()或$.getJSON()方法可以从服务器获取JSON数据。例如: ```javascript $.ajax({ url: 'get_data.php', dataType: 'json', success: function(data) { console.log(data.name); // 输出 ...
首先,我们可以创建一个名为`RecursiveJsonDecoder`的类,它包含一个`decode`方法,接收一个JSON字符串作为输入,并返回一个解析后的PHP对象或数组。这个类需要一个内部方法,如`_decodeObject`,用于递归处理JSON...
JSON格式与PHP的结合使用,需要我们掌握几个关键的函数:json_encode和json_decode。json_encode用于将PHP数组或者对象转换成JSON格式的字符串;json_decode则是将JSON格式的字符串转换成PHP数组或者对象。以下为...
在标签"源码"和"工具"的上下文中,这些PHP函数和方法是开发过程中非常实用的工具,能帮助开发者有效地处理JSON数据。通过结合使用`json_encode()`、`json_decode()`以及错误检查函数,我们可以方便地在PHP应用程序中...
在本例中,会使用POST方法发送JSON数据到服务器,例如: ```javascript const data = { key1: 'value1', key2: 'value2' }; fetch('http://example.com/api', { method: 'POST', headers: { 'Content-Type': '...
在jQuery中,我们可以使用`$.getJSON`方法或者`$.ajax`方法的`dataType: 'json'`选项来获取服务器返回的JSON数据。例如: ```javascript $.getJSON('server_script.php', function(data) { console.log(data.name)...
- PHP端使用`file_get_contents("php://input")`读取POST数据,然后使用`json_decode()`解析JSON。 **四、PHP处理JSON数据** 在PHP中,我们依赖`json_encode()`和`json_decode()`两个函数来处理JSON数据。 1. **...
在IT行业中,XML(eXtensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛使用的数据交换格式。XML以其结构化和可扩展性在Web服务和数据存储中占据重要地位,而JSON则因其简洁性和易读性在...
标题中的"phpjson.php"很可能是一个简单的PHP脚本,用于处理JSON编码操作。在PHP中,`json_encode()`函数是用来将PHP变量转换为JSON格式字符串的关键函数。这个函数能够将数组、对象或者值转换成JSON,以便于在网络...
通过理解`JSON_UNESCAPED_UNICODE`选项,并结合正确的编码设置,我们可以有效地在PHP中使用`json_encode`处理包含中文汉字的数据。同时,确保目标环境和交互语言的兼容性也是至关重要的。提供的PDF文档可能详细介绍...