错误JSON.parse,如何转换数组jquery ajax?

时间:2018-10-18 03:49:48

标签: php jquery

我有一个AJAX调用,它返回了一些像这样的JSON:

   while($row= $stmt->fetch()){

                echo json_encode(array('model' =>$model ));



        }

输出是这个

{"model":"MDX"}{"model":"NSX"}{"model":"RL"}{"model":"TL"}{"model":"TSX"}{"model":"RDX"}{"model":"CSX"}{"model":"ZDX"}{"model":"ILX"}{"model":"RLX"}{"model":"TLX"}

我如何只获取该数组的值?

问题是我需要将该数组转换为纯文本,如

MDX
NSX
RLd
TL
TSX
RDX
etc..

当我收到回调时尝试了此操作,但将我抛出错误

$.ajax({

       type:"POST",
       url:url,
       data:{category_brand:category_brand},
       datatype:"json",
       contenType: "application/json",
   }).done(function(response){

           var text=response;
           var obj=JSON.parse(text);

           console.log(obj);


   }).fail(function(jqXHR, textStatus, errorThrown){

     console.log(textStatus);

   })

这是错误

1。 > 未捕获的SyntaxError::对象中JSON.parse()位置15处JSON中的意外令牌{ XMLHttpRequest.c的y(jquery.min.js:2)在Object.fireWith的我(jquery.min.js:2)处(main.js:8838) (jquery.min.js:4)

有人可以帮我吗, json

2 个答案:

答案 0 :(得分:1)

将您的json粘贴到一种验证工具(如此处的https://jsonlint.com/)中,然后看看会发生什么。您将得到相同的错误(但用不同的词)。

要将您的json放入数组中,它看起来像这样:

[{"model":"MDX"},{"model":"NSX"},{"model":"RL"},{"model":"TL"},{"model":"TSX"},{"model":"RDX"},{"model":"CSX"},{"model":"ZDX"},{"model":"ILX"},{"model":"RLX"},{"model":"TLX"}]

关键位是[,]

发生的事情是您有多个根,但是JSON仅支持单个根元素。它正在读取{"model":"MDX"},并在到达最后一个}时看到根元素的结尾(即json文档的结尾)。之所以抛出错误,是因为它看到了不该出现的其他东西。

答案 1 :(得分:0)

我解决了!这样

 $data=array();

    while($row= $stmt->fetch()){

        array('model' =>$data[]=$model );

        }
       echo json_encode($data);

js文件

$.ajax({

       type:"POST",
       url:url,
       data:{category_brand:category_brand},
       datatype:"json",
       contenType: "application/json",
   }).done(function(response){          

                var text=response;
               var obj=JSON.parse(text);

               console.log(obj);


obj.forEach( function(value, index, array) {
    console.log("in the index " + index + " there is this value: " + value);

});