如何使用symfony2项目中的ajax解码JSON?

时间:2015-04-25 03:16:58

标签: php jquery ajax json symfony

我目前正在研究symfony2,我从控制器发送有关我产品的JSON信息

public function getProduitsOnJSONAction()
{
    $em = $this->container->get('doctrine')->getEntityManager();
    $produits = $em->getRepository('BTBundle:Produit')->findAll();
    //start  bloc reponse json
        $encoders = array(new JsonEncoder());
        $normalizers = array(new GetSetMethodNormalizer());
        $serializer = new Serializer($normalizers, $encoders);
        // passed data $produits
        $response = new Response($serializer->serialize($produits, 'json')); 
        $response->headers->set('Content-Type', 'application/json');
        return $response;
    // end bloc json response

}

此网址中的JSON(“http://localhost/BusinessTracker/web/app_dev.php/getProduitsJSON”):

[{"id":1,"refProduit":"1265466","nomProduit":"Yagourt","prixProduit":270,"stockProduit":10,"libelleProduit":"Yagourt D\u00e9lice"},{"id":2,"refProduit":"000001","nomProduit":"Nutella","prixProduit":4500,"stockProduit":15,"libelleProduit":"Chocolat Nutella"},{"id":3,"refProduit":"000002","nomProduit":"Lait D\u00e9lice","prixProduit":950,"stockProduit":30,"libelleProduit":"1L de Lait d\u00e9lice"}]

现在从客户端我想通过ajax解码这个JSON

$.getJSON('http://localhost/BusinessTracker/web/app_dev.php/getProduitsJSON', function(data) {
                  var items = [];

                  $.each(data, function(key, val) {
                    items.push('<li id="' + key + '">' + val + '</li>');
                  });

                  $('<ul/>', {
                    'class': 'my-new-list',
                    html: items.join('')
                  }).appendTo('body');
            });

没有任何反应。我需要帮助

1 个答案:

答案 0 :(得分:0)

我认为你的for循环略有偏离:

$.getJSON('http://localhost/BusinessTracker/web/app_dev.php/getProduitsJSON', function(data) {
              var items = [];

              data.each(function(obj) {
                items.push('<li id="' + obj.id + '">' + obj.nomProduit + '</li>');
              });

              $('<ul/>', {
                'class': 'my-new-list',
                html: items.join('')
              }).appendTo('body');
        });