我试着读这个json结果:
stdClass Object (
[search-results] => stdClass Object
(
[opensearch:totalResults] => 1770323
[opensearch:startIndex] => 0
[opensearch:itemsPerPage] => 25
[opensearch:Query] => stdClass Object
(
[@role] => request
[@searchTerms] => gene
[@startPage] => 0
)
[link] => Array
(
[0] => stdClass Object
(
[@_fa] => true
[@href] => http://api.els.com/content/search/scidir?start=0&count=25&query=gene
[@ref] => self
[@type] => application/json
)
)
)
)
$json = file_get_contents($requete); // dans la variable json
$obj = json_decode($json);
echo $obj->search-results->link[0]; // (I tried also : $obj->{'search-results'}->link[0];
代码错误:
解析错误:语法错误,意外' - >' (T_OBJECT_OPERATOR), 期待','或';'在
我不明白我的错在哪里,拜托,请你有个主意吗? 谢谢 让
答案 0 :(得分:0)
有效的变量名称以字母或下划线开头,后跟 任意数量的字母,数字或下划线。作为一个常规 表达,它将表达如下: ' [A-ZA-Z_ \ x7f- \ XFF] [A-ZA-Z0-9_ \ x7f- \ XFF] *'
您使用$obj->search-results->link[0];
。我认为搜索结果有问题会将json中的-
更改为_
(下划线)并再次检查。
答案 1 :(得分:0)
如果search-result
是固定对象,那么您可以尝试:
$search = 'search-results'; //declare variable
echo $obj->{$search}->link[0]; // (I tried also : $obj->{'search-results'}->link[0];