Code前端首页关于Code前端联系我们

而使用php检索json对象(php获取json中的内容)

terry 2年前 (2023-09-30) 阅读数 60 #PHP
文章标签 PHP

本文目录一览:

  • 1、php如何接收js传来的json对象
  • 2、php如何返回json对象呢
  • 3、如何在PHP中解析json

php如何接收js传来的json对象

你无法传json对象到服务端交互的,要传的只是一个字符串(Json),是个字符串!

你发的代码里是json的解析,没有多大意义,你在php页面这样调试

var_dump($_REQUEST);//输出所有数据,如果存在的话,你会看到那个参数是啥

另外,json格式,主要方便javascript解析的,而不是php擅长的内容,多数情况下,是PHP返回json数据给js.

php的数组操作函数有主要的两个json_encode()与json_decode();

从你的代码中,我不确定你用何种方式通信,ajax?

我看你用到了jQuery,那里面有个ajax,方式类似这样的:

$.ajax({

type: "post",       //method;can be get with post or request

url: "/mySever.php",//php url

error: function(){alert('Error');},

data: {

data1:   name,

data2:   age,

}, 

datatype:"json",//json back

timeout: 5000,

success: function(msg)

{

//eval(msg);//parase here

}

});

return false;

}

php如何返回json对象呢

返回json用的json_encode()方法没错,但是需要在头部声明格式。

代码解析

php返回需要用json_encode()方法来将需要转换的字符串转换成json编码格式(注意:仅仅更换文件内容,而返回的文件依然为文本格式且编码为gtk)

所以,这里需要在php头部声明

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

拓展内容

json

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

json通常被作为配置文件,常见还有.ini

如何在PHP中解析json

目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。

从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。

一、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}

由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。

二、索引数组和关联数组

PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。

由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。

比如,现在有一个索引数组

$arr = Array('one', 'two', 'three');

echo json_encode($arr);

结果为:

["one","two","three"]

三、类(class)的转换

下面是一个PHP的类: 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; } }

现在,对这个类的实例进行json转换:

$foo = new Foo;

$foo_json = json_encode($foo);

echo $foo_json;

输出结果是

{"public_ex":"this is public"}

可以看到,除了公开变量(public),其他东西(常量、私有变量、方法等等)都遗失了。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门