我爱编程

XML和JSON

2016-06-11  本文已影响33人  XZ阳光小熊

XML

XML(eXtensible Markup Language)是一种可扩展的标记语言。

标记语言(markup Language)是指在普通文本中加入一些具有特定含义的标签(Tag),以对文本的内容进行标识和说明的一种文件标识方法。

一、XML编写规范

XML类似于html的双标签的写法,它必须有根标签,必须是双标签而且必须是封闭,标签名全部都可以自定义。示例代码如下:

<students>
    <student id="1">
        <name>3D哥</name>
        <age>18</age>
        <wife>***</wife>
    </student>
    <student id="1">
        <name>3D哥</name>
        <age>18</age>
        <wife>***</wife>
    </student>
    <student id="1">
        <name>3D哥</name>
        <age>18</age>
        <wife>***</wife>
    </student>
</studnets>

上面就是一段用于表示3个学生的信息的XML代码,我们将数据写成XML的文本代码,通过解析之后将数据传递到前端,实现前后台数据交互。由于传递相同数据时XML占用的空间更大,所以此处我们只做了解,至于如何解析,我们这里便不做描述。

JSON

一、JSON简介

JSON(javaScript Object Notation)是一种轻量型的数据格式。JSON构建有两种结构:

1、“名称/值”对的集合。不同的语言中,它被理解为对象,记录,结构,字典,哈希表,有键列表,或者关联数组,实例:

    $json = '{"name" : "xiaoming","age" : "18","gender" : "man"}';
    echo $json;
代码执行效果

2、值的有序列表。在大部分语言中,它被理解为数组。

二、PHP接收和传递JSON

1、json_decode($json, assoc ) — 对JSON格式的字符串进行编码。

$json : 待解码的json,必须是string格式的字符串。
assoc : 当参数为true返回数组,false返回对象,默认为false。

    $json = '{"name" : "xiaoming","age" : "18","gender" : "man"}';
    var_dump(json_decode($json)); // 返回对象
    echo "<hr/>";
    var_dump(json_decode($json,true));  // 返回数组
代码执行效果
2、json_encode() — 对变量进行JSON编码

注意: 此函数只能接受UTF-8编码的数据。
返回值: 编码成功则返回一个以json形式表示的string或者在失败时返回false。

    $json = array("name"=>"xiaoming", "age"=>"18", "gender"=>"man");
    print_r($json);

    echo "<hr/>";
    // 将数组转换成字符串格式的json对象
    echo json_encode($json);
代码执行效果

当我们把数据库中的数据取出来之后,经过PHP在后台进行JSON编码之后,通过echo输出在前端用ajax接收数据,即可实现前后台数据交互。

<?php

    // 连接数据库
    $db = mysql_connect("localhost", "root", "");

    // 选择数据库
    mysql_select_db("girlDB");

    // 设置编码方式
    mysql_query("SET NAMES UTF8");

    // 查询数据库
    $sql = "SELECT * FROM girl";
    $res = mysql_query($sql);

    // 创建数组
    $array = array();
    // 取出数据库中的数据
    while ($row = mysql_fetch_assoc($res)) {
        $array[] = $row; //等同于array_push()
    };

    // 对数组进行字符串编码
    echo json_encode($array);

    // 关闭数据库
    mysql_close($db);

 ?>

PHP代码执行效果

以上内容纯属个人理解,由于本人水平有限,若有错漏之处敬请指出斧正,小弟不胜感激。

上一篇 下一篇

猜你喜欢

热点阅读