Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JSON问题_Php_Json - Fatal编程技术网

Php JSON问题

Php JSON问题,php,json,Php,Json,我试图让PHP读取XML文件,然后将其转换为JSON,以便在我编写的某些类中使用。我遇到的问题是它不会循环通过所有XML节点 出于某种原因,它将只返回一个节点,而不是同时返回两个节点。我猜可能我的JSON对象格式不正确。我已经搞了两天了,呃!我是新手,所以对我宽容点;) tracker.xml json.php 我知道我可以将true作为第二个参数传递给json\u decode(),但我想处理对象 以下是json\u decode()的输出(通过getJSON进行格式化后): return立即

我试图让PHP读取XML文件,然后将其转换为JSON,以便在我编写的某些类中使用。我遇到的问题是它不会循环通过所有XML节点

出于某种原因,它将只返回一个节点,而不是同时返回两个节点。我猜可能我的JSON对象格式不正确。我已经搞了两天了,呃!我是新手,所以对我宽容点;)

tracker.xml json.php 我知道我可以将
true
作为第二个参数传递给
json\u decode()
,但我想处理对象

以下是
json\u decode()
的输出(通过getJSON进行格式化后):


return
立即从当前函数返回。您需要
echo
进行调试,如中所示

foreach($json->student as $v)
{
    echo 'ID: '.$v->id.'Last: '.$v->lname.'First: '.$v->fname;
}

如果要返回结果,只需返回JSON对象或将其解析为数组或字符串。

return
立即从当前函数返回。您需要
echo
进行调试,如中所示

foreach($json->student as $v)
{
    echo 'ID: '.$v->id.'Last: '.$v->lname.'First: '.$v->fname;
}

如果要返回结果,只需返回JSON对象或将其解析为数组或字符串。

我认为JSON字符串正确,问题在于
return
语句-在数组中循环时,使用
echo

我认为JSON字符串正确,问题在于
return
语句-在数组中循环时,使用
echo

关于JSON 我重新格式化了你的输出。如您所见,“学生”下有两个节点。可能您错过了
[
]
字符

下次格式化JSON以更好地了解正在发生的事情。:)


关于你的职能 由于调试输出被破坏,您可能也错过了它:

foreach($json->student as $v)
{
   return 'ID: '.$v->id.'Last: '.$v->lname.'First: '.$v->fname;
} 
在第一次迭代之后返回

尝试:

不过,老实说,我希望名为
getJSON()
的函数返回,嗯。。。JSON。不是作者写的字符串。您的类和函数总体上命名不好

也许您的函数应该如下所示:

public function getJSON()
{
    $json = json_decode($this->xmlArray);

    // some debug output for development
    foreach ($json->student as $v) {
        echo "ID: {$v->id} Last: {$v->lname} First: {$v->fname}\n";
    }

    return $json;
}
关于你的JSON 我重新格式化了你的输出。如您所见,“学生”下有两个节点。可能您错过了
[
]
字符

下次格式化JSON以更好地了解正在发生的事情。:)


关于你的职能 由于调试输出被破坏,您可能也错过了它:

foreach($json->student as $v)
{
   return 'ID: '.$v->id.'Last: '.$v->lname.'First: '.$v->fname;
} 
在第一次迭代之后返回

尝试:

不过,老实说,我希望名为
getJSON()
的函数返回,嗯。。。JSON。不是作者写的字符串。您的类和函数总体上命名不好

也许您的函数应该如下所示:

public function getJSON()
{
    $json = json_decode($this->xmlArray);

    // some debug output for development
    foreach ($json->student as $v) {
        echo "ID: {$v->id} Last: {$v->lname} First: {$v->fname}\n";
    }

    return $json;
}

你们班的名字不好。你的问题标题也是。JSON输出有什么问题吗?我觉得很好。你应该解释你在寻找什么样的输出,以及它与你得到的不同之处。+1用于发布代码(虽然只是片段,而不是像连续的5行。但是,你忘了告诉我们确切的问题;)。您在哪一步中得到了什么输出?您希望得到什么?两个学生节点都在JSON输出中,它们位于对象的
student
键中的一个数组中。@user738910:我们知道您在做什么。Excel与此无关,只是把问题弄得一团糟。你的问题还可以。你应该阅读解释问题的答案。你的班级名字不好。你的问题标题也是。JSON输出有什么问题吗?我觉得很好。你应该解释你在寻找什么样的输出,以及它与你得到的不同之处。+1用于发布代码(虽然只是片段,而不是像连续的5行。但是,你忘了告诉我们确切的问题;)。您在哪一步中得到了什么输出?您希望得到什么?两个学生节点都在JSON输出中,它们位于对象的
student
键中的一个数组中。@user738910:我们知道您在做什么。Excel与此无关,只是把问题弄得一团糟。你的问题还可以。你应该阅读答案,它解释了问题。谢谢,我现在知道发生了什么。我只是在看我帖子下面的评论,没能再往下看一看你们写的东西。我对你们所有人感到沮丧感到抱歉。对不起,谢谢!谢谢,我现在知道怎么回事了。我只是在看我帖子下面的评论,没能再往下看一看你们写的东西。我对你们所有人感到沮丧感到抱歉。对不起,谢谢!
$output = '';
foreach ($json->student as $v) {
   $output .= "ID: {$v->id} Last: {$v->lname} First: {$v->fname}\n";
} 
return $output;
public function getJSON()
{
    $json = json_decode($this->xmlArray);

    // some debug output for development
    foreach ($json->student as $v) {
        echo "ID: {$v->id} Last: {$v->lname} First: {$v->fname}\n";
    }

    return $json;
}