`

PHP数组和Json之间的转换

 
阅读更多
引用
http://www.cnblogs.com/xmphoenix/archive/2011/05/26/2057963.html

之所以要用到Json,很多时候是因为使用ajax对象时,程序与JS函数之间的数据交互。因为JS不认识PHP中的数组,PHP也不认识JS中的数组或对象。Json很好的解决了这个问题。

Json简介

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript的一个子集,这意味着JavaScript可以直接读取Json,非常方便。

Json的具体形式是:
1.对象

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

例如: {"username": "Eric","age":23,"sex": "man"}

代码示例:
<script type="text/javascript">   
function getUser()
{
    var   user = {
    "username": "Eric",
    "age":23,
    "family": {"mother":"Marry","father":"Alon","brother":"Tom"}
    };   
    alert( user.username );   
    alert( user.age );   
    alert(user.family.brother);
}   
getUser();   
</script>

2、数组

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

例如: ["Eric",23, "man"]

代码示例:
<script type="text/javascript">
   function getArray()   {
      var arr = ["Jarry",23, ["www.xiaophper.com","wxyh_999@126.com"]];
      alert(arr[0]);   
      alert(arr[1]);   
      alert(arr[2][0]);   
      alert(arr[2][1]);
   }   
   getArray();   
</script>

注意:对象和数组两种形式在JS中的调用时不一样啊,对象用“.”调用,数组用下标[0]、[1]调用。还要注意在传递Json串时string类型的值要用引号括起来。

PHP中将数组转变成Json

强大的PHP已经提供了内置函数:json_encode() 和 json_decode()。很容易理解,json_encode()就是将PHP数组转换成Json。相反,json_decode()就是将Json转换成PHP数组。

例如:

$array = array("name" => "Eric","age" => 23);
echo json_encode($array);


程序将打印出 :  {"name":"Eric","age":23}

再看下面的例子:


$array = array(0 => "Eric", 1 => 23);   
echo json_encode($array);


程序将打印出 :["Eric",23]
以上两个例子可以看出,如果PHP数组的键都是数字,那么json_encode()返回一个数组形式的Json,如果PHP数组的键全是字符串。那么json_encode()就会返回一个对象形式的Json。刚已经说过。两者在js中的调用是不同的。
事实上,只要在PHP数组的键中有一个字符串形式的键,那么json_encode()就会返回对象形式的Json。这是不正确的。因为,虽然在PHP代码中不会出现错误,但要是将这样的Json传给JS函数,JS会将此Json当做一个对象,而对象是不可能以数字作为属性名的。也就是说JS 不知道这是什么 : user.0.username  (中间是数字零)
分享到:
评论

相关推荐

    PHP实现数组转JSon和JSon转数组的方法示例

    - **XML/JSON互相转换工具**:在XML和JSON之间进行快速转换。 - **JSON代码在线格式化/美化/压缩/编辑/转换工具**:提供多种操作选项,包括格式化、压缩、编辑和转换JSON数据。 - **C语言风格/HTML/CSS/json代码格式...

    经典ASP读取JSON字符串/生成JSON对象,数组对象等。

    JSON对象以大括号{}表示,键值对之间用逗号分隔。键必须是字符串,用双引号包围。例如:`{"name": "John", "age": 30}`。数组则用方括号[]表示,元素间以逗号分隔,如:`["apple", "banana", "orange"]`。 2. **...

    PHP数组对象与Json转换操作实例分析

    在PHP中,将JSON字符串转换为PHP数组或对象,我们可以使用内置的`json_decode`函数。例如,给定一个JSON字符串`$json`,可以这样转换: ```php $arr = json_decode($json, true); // true表示转换为关联数组 $obj =...

    php的json和数组相互转换,以及ci框架的一些笔记

    php的json和数组相互转换,ci框架遇到的一些问题总结,以及图片上传的一些功能

    php数组转换js数组操作及json_encode的用法详解

    PHP内置了大量的函数来处理数组和字符串,例如在需要构建客户端需要的动态数据时,将PHP数组转换为JSON格式再被JavaScript所使用是一种常见的场景。 首先,PHP数组可以以非常灵活的方式来存储多维数据结构。数组...

    JSON用法之将PHP数组转JS数组,JS如何接收PHP数组

    在JSON转换过程中,经常用到的是数组和对象两种格式。JavaScript中对象通过`{}`定义,包含一组“键值对”,键和值之间用冒号`:`分隔,键值对之间用逗号`,`分隔。而数组则是用`[]`定义,元素之间也是用逗号`,`分隔。 ...

    基于JSON实现传输byte数组过程解析

    JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛用于服务器与客户端之间的数据传递,因为它的结构清晰、易于阅读和编写,同时也方便机器解析和生成。然而,JSON本身并不直接支持二进制数据的...

    php xml 转json和array

    上述代码首先使用`simplexml_load_file()`函数加载XML文件并将其转换为SimpleXMLElement对象,然后通过两次`json_encode()`操作将其转换为PHP数组,最后再次编码为JSON字符串。 其次,XML转数组通常是为了方便在PHP...

    深化理解PHP JSON数组与对象_.docx

    然而,PHP中的数组和JSON对象之间的转换可能会导致一些混淆,尤其是当数组的结构不规则时。 PHP的`json_encode`函数用于将PHP值转化为JSON格式的字符串。对于数组,`json_encode`处理方式有所不同。当数组满足以下...

    php实现数组中索引关联数据转换成json对象的方法

    在PHP编程中,将数组转换为JSON对象是一个常见的任务,特别是在处理前端与后端的数据交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。PHP...

    json for PHP4.0

    例如,一个关联数组可以被转换为JSON对象,一个数值或字符串数组可以被转换为JSON数组。 ```php class Json { function encode($data) { // 实现代码,将PHP数据转换为JSON字符串 } } ``` 使用这个类时,你可以...

    php读写json文件

    json_encode() 函数是 PHP 提供的一个函数,它可以将 PHP 数组转换为 JSON 字符串。例如: ```php &lt;?php $data = array( 0 =&gt; array("a" =&gt; "orange", "b" =&gt; "banana", "c" =&gt; "apple"), 1 =&gt; array(1, 2, 3, 4,...

    JSON FOR PHP4.0 PHP JSON操作 Services_JSON

    在PHP 5.0及更高版本中,这些函数内置于核心,可以方便地将PHP数组或对象转换为JSON字符串,或将JSON字符串解析为PHP数据结构。 `json_encode`函数是将PHP值转换为JSON字符串的关键。在Services_JSON库中,你可以...

    PHP 二维array转换json的实例讲解

    首先,PHP提供了内置函数`json_encode()`,该函数可以将PHP数组直接转换为JSON字符串。对于普通的数组来说,使用起来非常简单。例如: ```php $array = array('a' =&gt; 'Apple', 'b' =&gt; 'Banana'); $json = json_...

    PHP 数组和字符串互相转换实现方法.rar

    2. `json_decode()` 函数:当字符串是JSON格式时,可以使用`json_decode()`将其转换为PHP数组: ```php $json_str = '{"fruit":"apple","color":"red"}'; $array = json_decode($json_str, true); print_r($array);...

    php三联地区数组版和数组转换js代码

    "php三联地区数组版和数组转换js代码"这个资源提供了一种解决方案,它包括了PHP和JavaScript之间的数据转换,以方便在前端和后端之间进行数据交互。下面我们将深入探讨这个主题。 首先,三联地区数据通常指的是省份...

    php_sql.zip_Known_c php post_json文件转换_php 数组 转 sql

    将数组,HTML,XML或JSON文件转换为SQL语法。 使用 ======================== - SELECT *FROM myArray ORDER BY key DESC,value ASC, - SELECT key,value FROM myArray WHERE value= 100 , - SELECT * FROM json_...

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

    在这个例子中,我们创建了一个关联数组,然后使用json_encode()将其转换为JSON字符串。结果将是: ```json { "name": "John Doe", "age": 30, "city": "New York" } ``` 如果你需要处理的对象是PHP类的实例,...

Global site tag (gtag.js) - Google Analytics