Javascript 返回JSON响应

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); } });

我正在提取XML数据,需要将其作为JSON返回前端

我通过AJAX处理用户输入,如下所示:

$.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;