博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery.post获取处理json数据
阅读量:6540 次
发布时间:2019-06-24

本文共 2392 字,大约阅读时间需要 7 分钟。

摘要:

  使用jquery.post获取json数据,并对返回的json数据进行处理。php相应post请求返回json数据,js将返回数据转换为json对象进行处理。

实现:

  前端:使用jquery.post请求数据

$.post(url,data,success(data))

  响应请求:使用php响应请求(前面借鉴了phpwind的响应ajax请求,所以返回的是xml格式数据)

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);$output = json_encode($arr);//{"a":1,"b":2,"c":3,"d":4,"e":5}header("Content-Type: text/xml;charset=utf-8");echo "
";

  前端处理返回数据:首先取出xml中数节点值,然后将其转换为json对象

function success(result){    if(typeof(result) == "object"){        result = result.lastChild.firstChild.nodeValue;//xml取节点值        eval("result = "+result);//转换为json对象    }    ....}

 

相关知识点:

  PHP中的JSON 

  1、json_encode():该函数主要用来将数组和对象,转换为json格式

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);echo json_encode($arr);//{"a":1,"b":2,"c":3,"d":4,"e":5}
$obj->body = 'another post';$obj->id = 21;$obj->approved = true;$obj->favorite_count = 1;$obj->status = NULL;echo json_encode($obj);/*$obj->body = 'another post';$obj->id = 21;$obj->approved = true;$obj->favorite_count = 1;$obj->status = NULL;echo json_encode($obj);*/

 

  注:json只能是utf-8编码,son_encode()的参数必须是utf-8编码,否则会得到空字符或者null

 

  2、索引数组和关联数组

  索引数组

$arr = Array('one', 'two', 'three');echo json_encode($arr);//"[]"(数组)//["one","two","three"]

  关联数组

$arr = Array('1'=>'one', '2'=>'two', '3'=>'three');echo json_encode($arr);//"{}"(对象) //{"1":"one","2":"two","3":"three"}

  将"索引数组"强制转化成"对象"

json_encode( (object)$arr );//或//json_encode ( $arr, JSON_FORCE_OBJECT );

 

  3、类(class)的转换

  公开变量(public),其他东西(常量、私有变量、方法等等)都遗失

class Foo {    const ERROR_CODE = '404';    public $public_ex = 'this is public';    private $private_ex = 'this is private!';    protected $protected_ex = 'this should be protected';     public function getErrorCode() {      return self::ERROR_CODE;    }}$foo = new Foo;$foo_json = json_encode($foo);echo $foo_json;//{"public_ex":"this is public"}

  4、json_decode()
  将json文本转换为相应的PHP数据结构
  json_decode()总是返回一个PHP对象
  如果想要强制生成PHP关联数组,json_decode()需要加一个参数true

$json = '{"foo": 12345}';$obj = json_decode($json);print $obj->{'foo'}; // 12345

 

  5、注意

  1)、json只能用来表示对象(object)和数组(array),如果对一个字符串或数值使用json_decode(),将会返回null
  2)、json的分隔符(delimiter)只允许使用双引号,不能使用单引号
  3)、json名值对的"名"(冒号左边的部分),任何情况下都必须使用双引号
  4)、最后一个值之后不能添加逗号(trailing comma)

 

   处理返回json数据

  将返回数据转换为json,私用eval(),但报"invalid label"错误,解决方法

 

var json = eval('(' + response + ')'); //或 eval('var json = ' + response);

 

 

 

参考:

  [1]

  [2]

 

转载地址:http://qusdo.baihongyu.com/

你可能感兴趣的文章
WPF中Listbox使用
查看>>
【配置文件】log4j.properties配置详解
查看>>
使用Beetle简单构建高性能Socket tcp应用
查看>>
ubuntu下安装flash player
查看>>
hdu1358(kmp循环节)
查看>>
Linux Shell常用技巧(一)
查看>>
【转】Castle.ActiveRecord的嵌套事务处理
查看>>
114. Flatten Binary Tree to Linked List
查看>>
多种方法求解八数码问题
查看>>
Java集合之HashMap源码分析
查看>>
iOS实现图像素描效果
查看>>
tiny210(s5pv210)移植u-boot(基于 2014.4 版本号)——移植u-boot.bin(打印串口控制台)...
查看>>
php base64_encode,serialize对于存入数据表中字段的数据处理方案
查看>>
发行版Linux和麒麟操作系统下netperf 网络性能测试
查看>>
《增长黑客》—— 读后总结
查看>>
shell的特殊符号的表示
查看>>
hdu Constructing Roads (最小生成树)
查看>>
外感身痛腹瀉案
查看>>
Mysql的大小写敏感性
查看>>
MVC杂记<->---路由
查看>>