【问题标题】:API PHP to JSON Output ErrorAPI PHP 到 JSON 输出错误
【发布时间】:2015-12-10 20:44:32
【问题描述】:

所以, 我正在开发一个似乎在服务器上运行良好的 API。我在 PHP 中形成了数组序列并完成了 json_encode($stuff),json_pretty_print。

echo '<pre>'.json_encode(thefez), json_pretty_print).'</pre>';

在服务器上完美呼应。如果我输入url directly from any browser,就可以看到数据了。 我添加了一个 var_dump 来检查。

带有 json_decode 的客户端:返回 NULL

$thanks=json_decode(file_get_contents('http://api.mutrs.me/?imos&volume=1'));

var_dump($thanks);

没有 json_decode 的客户端:返回 DATA

$thanks=(file_get_contents('http://api.mutrs.me/?imos&volume=1');

var_dump($thanks);

{
"muid": "IM5LGM02MFS8RJLKGY9W",
"bandname": "Marbles For Zen",
"core": {
    "joined": "Sun 01 March 2015",
    "bandbio": "Zen And Marbles",
    "genre": "Rhythm Blues",
    "subgenre": "Dixie Rhythm"
},

但是,在尝试提取数据时,使用服务器外的 foreach,会出现无效参数错误。

更新 因此,在拉出 pre 标签后,使用 foreach() 进行解码似乎可以工作。 该错误似乎是当读取到达第一组 [ ] 时,它会输出 Array, Array, Array。为什么会发生这种情况?

'muid'=>$id,
'title'=> $title,
'about'=>[
     'product'=>$product,
     'mediatype'=>$mediatype,
     'scrib'=>$scrib,
        ],

【问题讨论】:

  • 尝试放弃json_pretty_print 选项和&lt;pre&gt;&lt;/pre&gt;,一旦你证明它有效,你就不需要它们,它们实际上破坏了json数据结构
  • &lt;pre&gt; 标签不是有效的 JSON。丢失&lt;pre&gt; 标签。
  • 对,pre 只是为了生效。我删除了它,但仍然是 foreach 错误。
  • 我在我的电脑上运行了json_decode(file_get_contents('http://api.mutrs.me/?imos&amp;volume=1')),它运行良好。
  • 也许你应该json_decode(..., TRUE)?第二个参数告诉将所有对象转换为关联数组。附言你在你的问题中说你的var_dump“返回NULL”,不是吗?

标签: php arrays json client-server


【解决方案1】:

已解决

所以问题似乎已经解决了 99%。问题实际上始于 json 输出的 php 数组的结构,正如您可以看到与原始代码和下面代码的区别一样。通过将整个集群包装成一个数组,它[括起来] 并且其中的数组相应地排序。

服务器端:

$mez[]=array(
$mez["muid"]=$id,
$mez["bandname"]=$bandname,
$mez["core"]=array(
            'joined'=>$since,
            'bandbio'=>$bio,
            'genre'=>$genre,
            'subgenre'=> $subgenre
              ),
);

}
echo json_encode(array($mez));

客户端:

$connection=json_decode(file_get_contents('http://api.mutrs.me/artists/'));
foreach($connection as $data) {

$id=$data->muid;
$band=$data->bandname;

echo $id.'<br>'.$band.'';
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    相关资源
    最近更新 更多