我已经将从php函数返回的xml对象转换为json格式,将其发送到js文件中。
function searchResults($q) { ...
$xml = simplexml_load_string($result);
return json_encode($xml); }
我在js中接收/使用它,如
var msg_top = "<"+"?php echo searchResults('windows');"+"?"+">";
然后我在php&amp;中收到它解码。
$json = $_POST['msg_top'];
$msg = json_decode($json);
现在我如何遍历它以获取我可以从xml对象(我转换为json)获得的某些属性的所有值。这是我遍历xml对象以获取其某些属性的所有值的方法:
foreach ($xml->entry as $status) {
echo $status->author->name.''.$status->content);
}
如何从解码的json对象$ msg中获取所有这些值? 的 EDITED 我尝试使用相同的HTML,我使用js来接收&amp;通过ajax POST php搜索功能数据,我尝试使用以下代码在php中循环浏览json。但它没有显示任何内容。
$obj = searchResults(testword);//serach function returns json encoded data
$obj = json_decode($obj, true);
$count = count($obj);
for($i=0;$i<$count;$i++)
{
echo $obj[$i][content];}// using xml for it, I get ouput like foreach ($xml3->entry as
// $status) {status->content}
答案 0 :(得分:11)
默认情况下,json_decode
返回stdClass。 stdClass-es的使用方式与foreach
的关联数组相同。
或者,您可以要求json_decode
返回关联数组:
$array = json_decode($_POST['foo'], TRUE);
答案 1 :(得分:0)
我认为你必须使用$msg
作为FOR LOOP,因为它是数组。
尝试使用此
查看其内容echo "<pre>".print_r($msg)."</pre";
//And if you see the correct array structure
foreach($msg as $key=>$value) {
//do your things
}