【发布时间】: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选项和<pre>和</pre>,一旦你证明它有效,你就不需要它们,它们实际上破坏了json数据结构 -
<pre>标签不是有效的 JSON。丢失<pre>标签。 -
对,pre 只是为了生效。我删除了它,但仍然是 foreach 错误。
-
我在我的电脑上运行了
json_decode(file_get_contents('http://api.mutrs.me/?imos&volume=1')),它运行良好。 -
也许你应该
json_decode(..., TRUE)?第二个参数告诉将所有对象转换为关联数组。附言你在你的问题中说你的var_dump“返回NULL”,不是吗?
标签: php arrays json client-server