JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。

简而论之,不管是xml还是json都是为了方便在客户端与服务器端交互数据的中转站,特别是用于对象型数据,比如最常见的数组。

下面将分别将数组从php传送给javascript,以及将数组从javascript传送给php示例说明,例子比较简单,明白概念即可。不管从php传送给javascript,还是javascript传送给php,json在传送之前都会将对象扁平化即一维化为字符串。

PHP 向 JavaScript 传值

PHP 文件 json.php

$arr = array(

'name' => '希亚',

'nick' => 'Gonn',

'contact' => array(

'email' => 'gonnsai@163.com',

'website' => 'http://www.nowamagic.net',

)

);

$json_string = json_encode($arr);

echo "getProfile($json_string)";

?>

光执行这个文件,其结果如下:

getProfile({"name":"\u5e0c\u4e9a","nick":"Gonn",

"contact":{"email":"gonnsai@163.com","website":"http:\/\/www.nowamagic.net"}})

json.php 是通过 json_encode 函数将数组扁平化,然后发送,相反有个 json_decode 函数。

那么在 JavaScript 如何调用呢?很简单,定义一个变量获取 PHP 传来的 Json,该 Json 具备对象的特性,我们可以用 array.name 这种方式来获取该 Json 的属性。

function getProfile(str) {

var arr = str;

document.getElementById('name').innerHTML = arr.name;

document.getElementById('nick').innerHTML = arr.nick;

document.getElementById('email').innerHTML = arr.contact.email;

document.getElementById('website').innerHTML = arr.contact.website;

}

运行结果如下:

希亚

Gonn

gonnsai@163.com

http://www.nowamagic.net

JavaScript 向 PHP 传值

json_encode.html

json:From javascript To php

function JSON_test(o)

{

var user = {

name:document.getElementById('txt_name').value,

email:document.getElementById('txt_email').value,

password:document.getElementById('txt_password').value

}

var json_string = JSON.stringify(user);

document.getElementById('txt_json').value=json_string;

alert("点击确定后将提交表单");

o.submit();

}

姓名

邮箱

密码

这里javascript扁平化需要一个插件:http://www.json.org/json2.js,通过JSON.stringify(str)将对象扁平化然后传送给php。

var last=obj.toJSONString(); //针对json.js

var last=JSON.stringify(obj); //针对json2.js

json_encode.php

header('Content-Type: text/html; charset=utf-8');

$json_string = $_POST["txt_json"];

//echo $json_string;

if(ini_get("magic_quotes_gpc")=="1")

{

$json_string=stripslashes($json_string);

}

$user = json_decode($json_string);

echo var_dump($user);

echo '
';

echo $user->name.'
';

echo $user->email.'
';

echo $user->password.'
';

?>

这里就需要用到json_decode()这个函数,然后调用其中数据用 $obj->属性即可。

json 来实现 php 与 javascript,用 Json 来实现 PHP 与 JavaScript 间数据交换相关推荐

  1. .json格式是什么?如何快速打开.json文件?

    .json格式是什么? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语言的一个子集,但是它是独立于编程语言的,可以被多种编程语 ...

  2. javascript解析json

    下载json库 http://www.json.org/json-zh.html自己找javascript的 或者直接去下面的 https://github.com/douglascrockford/ ...

  3. html5展示json数据库,显示数据在html5从数据库使用javascript和json

    我想从MySQL数据库显示在html中的列表.要从MySQL获取数据我使用json和javascript.但它什么也没有显示!显示数据在html5从数据库使用javascript和json 我的HTM ...

  4. javascript使用Json总结

    在JSON中,有两种结构:对象和数组.     1. 一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟一个" ...

  5. javascript读写json示例

    JSON是一种简单的数据格式,比xml更轻巧,在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包,下面有个示例,大家可以参考下 JSON (JavaScript Obj ...

  6. JavaScript对Json的增删改属性

    <script type="text/javascript">var json = {"age":24,"name":" ...

  7. JavaScript解析Json字符串

    JavaScript可以解析服务器接口返回的json字符串(一般用于Ajax),而不需要json的额外支持. 在JavaScript中可以通过eval()方法将一个json字符串解析成一个JavaSc ...

  8. php用json交换二维数组,PHP和Javascript的JSON交互(处理一个二维数组)

    我不得不承认:我是一个彻彻底底的JS白痴.但根据项目需要,不得不使用JSON,不管怎么说,经过一个晚上的学习,已经略有所成,记录下来. PHP的JSON类库我使用的是Services_JSON,没什么 ...

  9. Javascript 处理 JSON 数据 示例

    最近做了一个 MEAN stack 的 app .后台用 NodeJS 从 Jira rest api 获得JSON数据并做处理,然后前端用 AngularJS Ajax call 获得处理后的 JS ...

最新文章

  1. 数据库管理系统的组成和结构
  2. js 字符串转成货币格式, js转货币
  3. 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 重写 MetaClass#invokeMethod 方法拦截 JDK 中已经定义的函数 )
  4. 你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧
  5. 统一建模语言UML轻松入门(3)――静态建模:类和对象
  6. java调用kettle例子_Kettle API - Java调用示例
  7. vue子组件触发祖先元素的执行的方法
  8. 第1章 Ext JS介绍与快速入门[1/4]
  9. 关于缓存穿透,缓存击穿,缓存雪崩,热点数据失效问题的解决方案
  10. python美多商城项目百度网盘_美多商城项目(六)
  11. Pollen 1.5 发布,Web 投票系统
  12. 如何在 Adobe XD 中创建交互式原型?
  13. iOS 开发经验 - 转载
  14. idea git push时 报错 Push rejected: Push to origin/master was rejected
  15. Zynga公布2019年第三季度财务业绩
  16. 【HR面试100问】一篇文章根治各种HR面的套路问题,文章给出参考答案~持续更新
  17. 如何关闭WPS文字的选项卡显示方式?如何实现多窗口显示?
  18. 关于移动端适配,你必须要知道的
  19. hyperLynx VX2.5 PCB仿真
  20. Chromedriver Mirror

热门文章

  1. 从不同步的代码块中调用了对象同步方法。_Java中Synchronized的用法
  2. 虚拟dom_虚拟DOM与dom diff
  3. 地图漫游功能的具体体现_【漫游天下】赣南 | 悠扬风韵之都
  4. python做系统查人的往来的信息_L01-04:python查询员工信息表练习
  5. C++项目开发注意事项--持续更新
  6. Build desktop apps for Windows PCs
  7. hive同时不包含一些字符串_hive中的字符串提取
  8. Django:Django简介,MTV,Django常用命令
  9. 我的世界服务器怎么修改矿物,我的世界怎么设置自定义矿物
  10. animation 先执行一次 在持续执行_FANUC机器人:先执行指令功能/后执行指令功能介绍与使用方法...