Javascript 返回JSON响应
我正在提取XML数据,需要将其作为JSON返回前端 我通过AJAX处理用户输入,如下所示:Javascript 返回JSON响应,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在提取XML数据,需要将其作为JSON返回前端 我通过AJAX处理用户输入,如下所示: $.ajax({ url: '/process.php', data: {category: 'sportingGoods'}, type: 'post', success: function(output) { console.log(output); } });
$.ajax({ url: '/process.php',
data: {category: 'sportingGoods'},
type: 'post',
success: function(output) {
console.log(output);
}
});
$xml = simplexml_load_file($signedUrl);
$json = json_encode($xml);
$products = json_decode($json,TRUE);
return $products;
这将发送到process.php
if(isset($_POST['category']) && !empty($_POST['category'])){
$category = $_POST['category'];
//echo $category;
switch($category){
case 'automotive':
$amazon->automotive;
break;
case 'sportingGoods':
echo $amazon->sportingGoods();
break;
}
}
然后,我访问类中的一个方法。在本例中,$amazon->sportingGoods()
现在,sportingGoods()
$.ajax({ url: '/process.php',
data: {category: 'sportingGoods'},
type: 'post',
success: function(output) {
console.log(output);
}
});
$xml = simplexml_load_file($signedUrl);
$json = json_encode($xml);
$products = json_decode($json,TRUE);
return $products;
XML和JSON数据就在那里。我可以打印($products)
和打印($xml)
并在控制台中查看结果。然而,当我试图归还它时,我什么也得不到。那么,我没有返回一个对象吗?如何访问结果?您需要回显json,然后停止脚本。然后,您将使用parseJSON将json响应转换为js数组
试试这个:
您的$.ajax({
:
在sportingGoods()
中:
你需要呼出声音$products@Maxxi不起作用。我只知道Array
为什么在sportingGoods()
中使用了json\u encode()
?jQuery可能会解码一轮,但您可能需要解码另一轮--console.log($.parseJSON(输出))
。很抱歉,我没有注意到您在回送JSON对象之前正在解码JSON对象。您需要回送JSON对象。然后,正如Jonathan所说,在客户端中使用$.parseJSON()解析JSON。使用JSON编码,您还应该在ajax请求中添加以下内容:数据类型:“JSON”,以便您可以使用对象。在任何情况下,返回都是不够的,您有要发送给客户端的回显。该函数(sportingGoods)的返回已产生回显,但不适用于汽车。谢谢!这很有帮助。我现在在控制台中看到该对象。欢迎。别忘了使用die()
或退出()
在您回显后response@Jon你的意思是我应该能够从sportingGoods
返回一个结果,并用开关回显它吗?这是我最初的意图。不确定为什么那不起作用。@是的,但是,你返回解码的json(即php数组)从函数中,当您仅echo
一个数组时,您将得到的只是array
,因此您应该让函数返回json\u encode
'd版本。即return$json;
而不是return$products;