介绍PHP中的JSON与XML格式转换

在开发过程中,数据格式转换是经常会遇到的问题。在php中,常用的两种数据格式是json与xml。json是一种轻量级的数据交换格式,易于阅读和编写,而xml是一种可以扩展的标记式语言,广泛应用于web数据传输和配置文件的存储。

本文将介绍PHP中如何将JSON格式互转成XML格式。

一、JSON转XML

PHP提供了可用于将JSON数据转换成XML格式的函数json_decode()。其语法如下:

  1. mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

登录后复制

其中,$json表示要转换的JSON字符串,$assoc表示是否将JSON对象转换成关联数组(默认为false),$depth表示最大递归深度(默认为512),$options表示转换选项(默认为0)。

立即学习“PHP免费学习笔记(深入)”;

下面是一个将JSON数组转换成XML的例子:

  1. <?php// JSON数据$json_data = '{ "students": [ { "name": "David", "age": 20, "score": { "English": 90, "Math": 85, "Chinese": 95 } }, { "name": "Tom", "age": 22, "score": { "English": 80, "Math": 75, "Chinese": 85 } } ]}';// 将JSON数据转换成PHP数组$php_data = json_decode($json_data, true);// 将PHP数组转换成XML格式$xml_data = new SimpleXMLElement('');array_to_xml($php_data, $xml_data);// 输出XML格式数据header('Content-type: text/xml');echo $xml_data->asXML();// 将数组转换成XML格式的函数function array_to_xml($arr, &$xml) { foreach ($arr as $key => $value) { if (is_array($value)) { if (!is_numeric($key)) { $subnode = $xml->addChild("$key"); array_to_xml($value, $subnode); } else { array_to_xml($value, $xml); } } else { $xml->addChild("$key", htmlspecialchars("$value")); } }}?>

登录后复制

上述代码首先将JSON字符串转换成PHP数组,然后再使用递归函数将PHP数组转换成XML格式。

输出XML格式数据如下:

  1. David 20 90 85 95 0> Tom 22 80 75 85 1>

登录后复制

二、XML转JSON

要将XML格式转换成JSON格式,则需要先将XML转换成PHP数组,再使用json_encode()函数将PHP数组转换成JSON字符串。下面是一个将XML转换成JSON的例子:

  1. <?php// XML数据$xml_data = ' David 20 90 85 95 0> Tom 22 80 75 85 1> ';// 将XML数据转换成PHP数组$php_data = xml_to_array(simplexml_load_string($xml_data));// 将PHP数组转换成JSON字符串$json_data = json_encode($php_data);// 输出JSON格式数据header('Content-type: text/json');echo $json_data;// 将XML数据转换成PHP数组的函数function xml_to_array($xml) { $arr = array(); foreach ($xml->children() as $element) { if (count($element->children()) == 0) { $arr[$element->getName()] = strval($element); } else { $arr[$element->getName()][] = xml_to_array($element); } } return $arr;}?>

登录后复制

上述代码首先将XML字符串通过simplexml_load_string()函数转换成SimpleXMLElement对象,再通过递归函数将SimpleXMLElement对象转换成PHP数组。最后使用json_encode()函数将PHP数组转换成JSON字符串。

输出JSON格式数据如下:

  1. { "students": [ { "name": "David", "age": "20", "score": { "English": "90", "Math": "85", "Chinese": "95" } }, { "name": "Tom", "age": "22", "score": { "English": "80", "Math": "75", "Chinese": "85" } } ]}

登录后复制

总结

PHP提供了方便的函数用于将JSON格式转换成XML格式和将XML格式转换成JSON格式。在开发过程中,根据实际需求选择合适的数据格式进行存储和交换,可以达到更好的数据传输和读取效果。

以上就是介绍PHP中的JSON与XML格式转换的详细内容,更多请关注【创想鸟】其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

点点赞赏,手留余香

给TA打赏
共0人
还没有人赞赏,快来当第一个赞赏的人吧!
    编程技术

    聊聊基本的PHP数组操作

    2025-3-5 12:32:58

    编程技术

    php怎么设置数组中的值

    2025-3-5 12:33:09

    0 条回复 A文章作者 M管理员
    欢迎您,新朋友,感谢参与互动!
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    私信列表
    搜索