首页博客网络编程
如何使用 JSON:PHP JSON 解码和其他函数指南
摘要 JSON 是一种标准的基于文本的格式,与 XML 类似但更轻量级。它保存可以解析为变量的匿名数据。 它通常用于读取服务器数据并将其输出到网页中。 JSON可以通过使用内置的PHP函数来处理。例如,可以使用 PHP 函数将 PHP 对象转换为 JSON 格式文件。对于相反的转换,请使用 PHP 。json_encode()json_decode() XML 不支持 PHP 数组,但可以转换为 JSON。

我们已经了解了XML格式。因此,理解JSON会容易得多:XML和JSON是相似的。它们都是旨在包含纯文本的文件格式,并且机器和人类都可以轻松阅读。因此,它们被用作标准。

如果您需要从服务器检索特定信息并使其显示在您的网站上,则可能会使用 JSON。JSON 的名称代表 JavaScript 对象表示法。它基于 JavaScript,因此在这里非常欢迎对它有一些基本的了解。JSON 也使用 JavaScript 语法

与XML不同,它不支持名称标签和注释,但支持PHP数组。JSON 也更轻量级,更易于阅读。在本教程中,我们将查看大量示例并学习使用称为 PHP json_decode() 和 json_encode() 的最基本的 PHP JSON 函数。

内容

PHP json_decode() 和 json_encode(): 主要提示

  • JSON 是可以在 PHP 变量中转换的匿名数据。

  • 数组可以转换为 JSON 格式。

  • JSON 通常用于从 Web 服务器读取数据并将其显示在网站上。

  • 有集成的函数来操作 JSON。其中最重要的是PHP和PHP。json_encode()json_decode()

学习对文件进行编码

要将PHP对象转换为JSON,我们使用PHP函数。为了进行相反的转换,使用了PHP,但稍后会详细介绍。现在让我们看一个代码示例:json_encode()json_decode()

复制

<?php
   $myObj->fruit = "Banana";
   $myObj->expires = 2017;
   $myObj->country = "Lithuania";
   $exampleJSON = json_encode($myObj);   echo $exampleJSON;?>

客户端 JavaScript

这个JavaScript使用AJAX来获取PHP文件:

复制

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){    
if (this.readyState == 4 && this.status == 200) {     var newObj = JSON.parse(this.responseText);
   document.getElementById("JSON").innerHTML = newObj.fruit;
}};
xmlhttp.open("GET", "demo.php", true);
xmlhttp.send();

如何转换数组

就像对象一样,数组使用 PHP 函数转换为 JSON。json_encode()

复制

<?php$myArr = array("Bob", "Bill", "Ben", "Brutus");

$myJSON = json_encode($myArr);echo $myJSON;?>

客户端 JavaScript

这个JavaScript使用AJAX将PHP文件从数组中取出:

复制

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var newObj = JSON.parse(this.responseText);
        document.getElementById("JSON").innerHTML = newObj[2];
    }
};
xmlhttp.open("GET", "demo_array.php", true);
xmlhttp.send();

向数据库发出请求

作为一种编码语言,PHP JSON是服务器端的。这意味着您只能将其用于服务器执行的任务。连接到数据库可能是这些适当的任务之一。想象一下,我们有一个保存某些信息的数据库。要请求它,我们需要调用数据库:

复制

<!DOCTYPE html>
<html>
<body>

<h2>JSON data from PHP file.</h2>

<p>The JSON received from the PHP file:</p>

<p id="example"></p>

<script>var obj, dbParameters, xmlhttp;
obj = { "table":"fruits", "limit":5 };
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {    if (this.readyState == 4 && this.status == 200) {
        document.getElementById("example").innerHTML = this.responseText;
    }
};
xmlhttp.open("GET", "your_file.php?x=" + dbParam, true);
xmlhttp.send();

</script>

</body>
</html>

示例解释:

  • 首先,我们描述保存属性限制的对象,并将其转换为 JSON。

  • 之后,将包含 JSON 参数的调用发送到 PHP 文件。

  • 返回调用时,我们输出从文件中收到的内容。

这里有我们的 PHP 文件:

复制

<?phpheader("Content-Type: application/json; charset=UTF-8");
$obj = json_decode($_GET["x"], false);

$connect = new mysqli("RequiredServer", "RequiredUsername", "RequiredPassword", "Northwind");
$result = $connect->query("SELECT name FROM ".$obj->table." LIMIT ".$obj->limit);
$output = array();
$output = $result->fetch_all(MYSQLI_ASSOC);echo json_encode($output);?>

让我们逐步回顾上面的脚本:

  • 调用使用 PHP 转换为对象。json_decode()

  • 建立与数据库的连接是为了将数据写入数组。

  • 数组附加到一个对象,该对象使用 PHP 以 JSON 格式返回。json_encode()

循环浏览结果

包含 PHP 代码的文件中的数据可以转换为 JavaScript 数组。为此,我们将使用 PHP for 循环

复制

...
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        newObj = JSON.parse(this.responseText);
        for (x in newObj) {
            txt += newObj[x].name + "<br>";
        }
        document.getElementById("JSON").innerHTML = txt;
    }
};
...

开机自检方法的使用

每当您需要将某些信息发送到服务器时,HTTP方法似乎是最佳选择。要将其用于 AJAX 调用,请不要忘记定义方法和正确的标头。我们需要发送到服务器的数据将成为函数的参数:POSTsend()

复制

obj = { "table":"customers", "limit":10 };
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        newObj = JSON.parse(this.responseText);
        for (x in newObj) {
            txt += newObj[x].name + "<br>";
        }
        document.getElementById("JSON").innerHTML = txt;
    }
};

xmlhttp.open("POST", "JSON.php", true);
xmlhttp.setRequestHeader("Content-type", "application/learn-encoded");
xmlhttp.send("x=" + dbParam);

处理 PHP 文件时,只有方法不同:

复制

<?phpheader("Content-Type: application/json; charset=UTF-8");
$obj = json_decode($_POST["x"], false);
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$result = $conn->query("SELECT name FROM ".$obj->table." LIMIT ".$obj->limit);
$outp = array();
$outp = $result->fetch_all(MYSQLI_ASSOC);echo json_encode($outp);?>

PHP json_decode() 和 json_encode(): 总结

  • JSON 是一种标准的基于文本的格式,与 XML 类似但更轻量级。它保存可以解析为变量的匿名数据。

  • 它通常用于读取服务器数据并将其输出到网页中。

  • JSON可以通过使用内置的PHP函数来处理。例如,可以使用 PHP 函数将 PHP 对象转换为 JSON 格式文件。对于相反的转换,请使用 PHP 。json_encode()json_decode()

  • XML 不支持 PHP 数组,但可以转换为 JSON。


声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!

本文链接:https://www.gaoxuejun173.top/blog/174

广告位

本文配乐
来说两句吧

该文章已禁止评论

最新评论

广告位