当我使用json_encode()
函数时,我收到未定义函数错误。我需要将xml数据转换为json数据。
我正在使用的代码是:
$xml = simplexml_load_string($retValue);
echo json_encode($xml);
我也试过这个:
$xml = simplexml_load_string($retValue);
$array = objectsIntoArray($xml);
$array = json_encode($array);
print_r($array);
die;
function objectsIntoArray($arrObjData, $arrSkipIndices = array())
{
$arrData = array();
if (is_object($arrObjData)) {
$arrObjData = get_object_vars($arrObjData);
}
if (is_array($arrObjData)) {
foreach ($arrObjData as $index => $value) {
if (is_object($value) || is_array($value)) {
$value = objectsIntoArray($value, $arrSkipIndices);
}
if (in_array($index, $arrSkipIndices)) {
continue;
}
$arrData[$index] = $value;
}
}
return $arrData;
}
但是在这个objectsIntoArray()
和json_encode()
中都会抛出函数未定义的错误。
$retValue
包含xml数据。我无法弄清楚为什么我会收到此错误。
我错过了什么。我对php完全不熟悉,也不太了解它。
请帮我解决这个问题。
答案 0 :(得分:0)
看起来PHP没有启用JSON扩展。从PHP 5.2.0开始,默认情况下捆绑并启用JSON扩展。但是,您仍然可以使用JSON构建PHP。
您应该通过创建名为phpinfo.php
的脚本来检查是否是这种情况,代码为:
<?php
phpinfo();
在浏览器中打开脚本。并检查是否可以找到名为 json 的部分。另请检查您的PHP版本。
json support enabled
json version 1.2.1
如果您使用的是PHP 5.1.x,install the extension using pecl。否则,请告诉您正在使用哪个OS(和发行版)以及如何安装PHP。
如果您没有自己安装PHP,请与您的系统管理员/托管服务提供商联系。
或者,您可以使用此pure PHP json library。
答案 1 :(得分:0)
好像你有旧版本的php 4.3.1。或者您的simplexml_load_string
被禁用。
检查
echo phpinfo();