我有一个php函数,它从twitter获取并返回tweet数据作为simplexml对象。我可以使用php语法获取其内容。这是php函数
<?php
function searchResults($q) {
$host = "http://search.twitter.com/search.atom?q=" . urlencode( $q ) . "&rpp=100";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
//Raw xml
$result = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($result);
return $xml;
}
?>
如果我称之为
$xml = searchResults('xyz');
我可以像
一样获取其内容echo $xml->content.''.$xml->author->name;
现在我需要以JSON格式从php函数返回它。像
return json_encode($xml);
尽管
return $xml;
那么,当我解码json时,如何以JSON格式从中获取相同的'content'和'author-&gt; name'等内容。
答案 0 :(得分:2)
如果由于任何其他原因而不需要XML而不是将其作为JSON返回,为什么不使用json格式作为Twitter API调用的响应? http://search.twitter.com/search.json?q=blablabla 这将返回您可以返回的JSON字符串中的响应。
我会像这样重写你的代码:
<?php
function searchResults($q) {
$host = "http://search.twitter.com/search.json?q=" . urlencode( $q ) . "&rpp=100";
$raw_json = file_get_contents($host);
return $raw_json;
}
?>
答案 1 :(得分:1)
这取决于。如果您从PHP访问它,有两种方法:
$obj = json_decode($json);
echo $obj->author->name;
或
$arr = json_decode($json, true);
echo $arr['author']['name'];
如果您使用JavaScript访问它,则应该是:
alert(jsObject.author.name);