0

使用函数时出现未定义函数错误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完全陌生,并不太了解它。请帮助我解决这个问题。

4

2 回答 2

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,请使用 pecl 安装扩展。否则,请说明您使用的是哪个操作系统(和发行版)以及您是如何安装 PHP 的。

如果您没有自己安装 PHP,请联系您的系统管理员/托管服务提供商。

或者,您可以使用这个纯 PHP json 库

于 2013-02-11T13:00:15.183 回答
0

看来你有旧版本的 php 4.3.1。或您simplexml_load_string的已禁用。检查 echo phpinfo();

于 2013-02-11T13:04:18.093 回答