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

Json简介

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

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

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

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

代码示例:

?View Code JAVASCRIPT

<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"]

代码示例:

?View Code PHP

<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数组。

例如:

?View Code PHP

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

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

再看下面的例子:

?View Code PHP

$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  (中间是数字零)

转载于:https://www.cnblogs.com/yiguangchao9999/p/5884295.html

PHP数组和Json之间的转换相关推荐

  1. json转php数组 在线,PHP数组和Json之间的转换

    http://www.cnblogs.com/itcx/p/3635612.html PHP数组和Json之间的转换 对象和Json之间的转换 json格式在开发中用的十分广泛.在php中json_e ...

  2. 数组和JSON之间的格式转换

    数组和JSON之间的格式转换 主要代码: const a = JSON.stringify(jsonStrings) //object转json const c = JSON.parse(a) //j ...

  3. FrontEnd——数组、字符串、JSON之间的转换和操作

    文章目录 简介 方案 1 插件或者说第三方库 1.1 flatted 1.2 circular-json(不推荐) 1.3 qs参数序列化 2 原生的方法 2.1 JSON.stringfy() 2. ...

  4. js解析json字符串、对象与json之间的转换

    前言 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键. js解析json字符串 // JSON字符串 'v ...

  5. 数组与数字之间的转换

    我们在练习编程题目的时候,有的题目可能会涉及到数组与数字之间的转换. 意思就是说:给你一个整型数字,通过转换把它存储在数组中,或者,给你一个数组,把数组中的数排序之后组合成一个整型数据输出出来,这类问 ...

  6. 处理实体与Map<String,Object>、json之间的转换

    处理实体与map,json之间的转换 实体与Map 实体与Map<String,Object>的转换 直接看代码,如下: package com.liu;import java.lang. ...

  7. java中数组和字符串之间的转换

    java中对于数组和字符串之间的转换确实是一小的迷点. 字符串转为数组可以使用: char[] toCharArray() 将此字符串转换为一个新的字符数组. 数组转字符串: 可以直接使用new的方式 ...

  8. golang 学习(二十四)结构体struct 和 json之间的转换

    结构体struct 和 json之间的转换 import ("encoding/json""fmt""math/rand""tes ...

  9. byte[]数组和int之间的转换

    这里简单记录下两种转换方式: 第一种: 1.int与byte[]之间的转换(类似的byte short,long型) [java] view plaincopy /** * 将int数值转换为占四个字 ...

最新文章

  1. 利用map和stringstream数据流解题
  2. 函数式接口、方法引用
  3. Ubuntu搭建git服务器,外网可访问
  4. 职业大揭秘,算法攻城狮在日常工作中都干了些啥?
  5. 极简写作语言-Markdown
  6. 搭量化数据库——互联网金融之三
  7. AdlinkMotionCardLibrary函数C++
  8. [mybatis]sqlSessionFactory.openSession()
  9. Hadoop精华问答 | 关于Hadoop核心技术的精华问答
  10. java将字体输出成图片格式_JAVA IO流中,能否将一个字符串以图片的格式输出出来呢,即字符串显示在图片上...
  11. Java基础 【Arrays 类的使用】
  12. vue-router(2.0)
  13. eclipse导入jar包的三种方法
  14. View Agent Direct-Connection注册表
  15. centos 安装 fortran
  16. 网络视频嗅探的几种方法
  17. centos启动卡死进不去界面,停留在started GNOME display manager
  18. 【Base】ping-pong buffer
  19. Java 从死到生的修炼 (第一章:生命的起源之接触.)
  20. 2021年山东大学python与大数据分析期末试题回忆

热门文章

  1. vue element Form-Item prop
  2. MediaStreamTrackAudioSourceNode
  3. 1.3 单一数字评估指标
  4. opencv-api getRotationMatrix2D
  5. qt添加qwt帮助文件_qt creator中使用qwt插件
  6. java面向对象计算机与CD实验,Java面向对象上机实验指导书.doc
  7. adobe怎么统计字数_统计数据显示,6 月份桌面 Linux 市场份额攀升至历史新高 | Linux 中国...
  8. 虚拟机下ubuntu10.04挂载NFS
  9. 有关 vSphere 6.X 的证书及升级问题 (转)-影响等级(重要)
  10. 一、Asp.Net Core WebAPI——修改默认监听端口