`
pz9042
  • 浏览: 30530 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

php json的用法

    博客分类:
  • php
阅读更多
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 for PHP4.0

    可能的内容包括如何实例化`Json`类,以及如何使用`encode`方法将各种类型的PHP数据结构转换为JSON字符串。例如,它可能演示了如何处理数组、对象、NULL值、布尔值等。 ```php require_once 'Json.php'; // 示例...

    JSON FOR PHP4.0 PHP JSON操作 Services_JSON

    在提供的压缩包文件中,`json_sample.rar`可能包含了一些JSON操作的示例代码或测试用例,展示了如何使用Services_JSON库来处理JSON数据。而`PHP4_jsonEncode_jsonDecode.zip`可能包含了具体的Services_JSON库的源...

    由php对象生成json字符串 把php对象变成json字符串.zip

    总的来说,将PHP对象转换为JSON字符串是通过json_encode()函数完成的,对于对象,可以考虑实现JsonSerializable接口或使用特定选项来控制序列化行为。在实际开发中,还要注意错误处理和编码选项的设置,以确保数据...

    php读写json文件

    PHP 读写 JSON 文件是指使用 PHP 语言来读取和写入 JSON(JavaScript Object Notation)文件的过程。JSON 文件是一种轻量级的数据交换格式,它使用人类可读的文本来存储和传输数据。PHP 语言提供了多种方式来读写 ...

    一个使用json生成phpclass代码的工具

    标题中的“一个使用json生成phpclass代码的工具”指的是一个特定的软件或脚本,它能够根据JSON(JavaScript Object Notation)数据格式自动生成PHP类(Class)代码。JSON是一种轻量级的数据交换格式,易于人阅读和...

    PHP实现的json类实例

    标题“PHP实现的json类实例”和描述“主要介绍了PHP实现的json类,实例分析了php实现json类的方法,具有一定参考借鉴价值,需要的朋友可以参考下”暗示了文章将重点讨论如何在PHP中实现JSON类,以及它的实例方法。...

    php-jsonpatch, PHP的JSON补丁实现.zip

    php-jsonpatch, PHP的JSON补丁实现 面向PHP的 这是在PHP中编写的 JSON补丁的实现。通过 Composer 安装$ composer require php-jsonpatch/php-jsonpatch用法现在,你可以通过可用的Comp

    PHP4的JSON类库

    - 使用 `encode` 方法,你可以将PHP的数据结构(如数组或对象)转换为JSON字符串。例如,一个关联数组 `$data = array('name' =&gt; 'John', 'age' =&gt; 30)` 可以编码为JSON对象 `{"name": "John", "age": 30}`。 - 在...

    php json类

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言的习惯,包括C、C++、C#、Java、JavaScript、Perl、Python等。PHP从5.2版本开始内置了...

    php json schema 参数校检库

    - 读我(Readme)文件,详细说明了库的安装、使用方法和注意事项。 - 许可证文件,规定了库的使用和分发条款。 在实际应用中,开发者需要先安装这个库,通常是通过Composer(PHP的依赖管理工具)。然后,他们可以...

    JSON jquery 与php 入门

    使用jQuery的$.ajax()或$.getJSON()方法可以从服务器获取JSON数据。例如: ```javascript $.ajax({ url: 'get_data.php', dataType: 'json', success: function(data) { console.log(data.name); // 输出 ...

    php递归json的类

    首先,我们可以创建一个名为`RecursiveJsonDecoder`的类,它包含一个`decode`方法,接收一个JSON字符串作为输入,并返回一个解析后的PHP对象或数组。这个类需要一个内部方法,如`_decodeObject`,用于递归处理JSON...

    PHP API接口必备之输出json格式数据示例代码

    JSON格式与PHP的结合使用,需要我们掌握几个关键的函数:json_encode和json_decode。json_encode用于将PHP数组或者对象转换成JSON格式的字符串;json_decode则是将JSON格式的字符串转换成PHP数组或者对象。以下为...

    PHP 生成JSON文件和获取JSON文件

    在标签"源码"和"工具"的上下文中,这些PHP函数和方法是开发过程中非常实用的工具,能帮助开发者有效地处理JSON数据。通过结合使用`json_encode()`、`json_decode()`以及错误检查函数,我们可以方便地在PHP应用程序中...

    使用json和服务器php交互的简单实例

    在本例中,会使用POST方法发送JSON数据到服务器,例如: ```javascript const data = { key1: 'value1', key2: 'value2' }; fetch('http://example.com/api', { method: 'POST', headers: { 'Content-Type': '...

    jQuery JSON with PHP json_encode and json_decode

    在jQuery中,我们可以使用`$.getJSON`方法或者`$.ajax`方法的`dataType: 'json'`选项来获取服务器返回的JSON数据。例如: ```javascript $.getJSON('server_script.php', function(data) { console.log(data.name)...

    Android与PHP通过JSON交互

    - PHP端使用`file_get_contents("php://input")`读取POST数据,然后使用`json_decode()`解析JSON。 **四、PHP处理JSON数据** 在PHP中,我们依赖`json_encode()`和`json_decode()`两个函数来处理JSON数据。 1. **...

    php xml 转json和array

    在IT行业中,XML(eXtensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛使用的数据交换格式。XML以其结构化和可扩展性在Web服务和数据存储中占据重要地位,而JSON则因其简洁性和易读性在...

    phpjson.php

    标题中的"phpjson.php"很可能是一个简单的PHP脚本,用于处理JSON编码操作。在PHP中,`json_encode()`函数是用来将PHP变量转换为JSON格式字符串的关键函数。这个函数能够将数组、对象或者值转换成JSON,以便于在网络...

    PHP JSON_ENCODE 不转义中文汉字的方法.rar

    通过理解`JSON_UNESCAPED_UNICODE`选项,并结合正确的编码设置,我们可以有效地在PHP中使用`json_encode`处理包含中文汉字的数据。同时,确保目标环境和交互语言的兼容性也是至关重要的。提供的PDF文档可能详细介绍...

Global site tag (gtag.js) - Google Analytics