$ .parseJSON(data).shift不是一个函数

时间:2017-11-15 12:05:39

标签: php json

我必须从$ post方法

解析json数据
$.post( "vehicle_route_qry.php",function(data) {  

    siteshistory = $.parseJSON(data);
    siteshistory.shift();
    draw_route(siteshistory);
    $("#dev_det_spin").hide();

});

我的php文件

$myJSON = '{ "name":"John", "age":31, "city":"New York" }';
echo json_encode($myJSON);

我在回复中正确地得到了json 但是遇到这个问题

siteshistory.shift is not a function

我已加载以下js文件

<script src="js/function.js"></script>
<script src="js/jquery.min.js"></script>
<script src="https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/markerclusterer.js">
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDaL0ieAkLhzy1rDoLifajeowdXPwTvzmI"></script>
<!-- <script type="text/javascript" src="js/date.js"></script> -->
<script type="text/javascript" src="js/loader.js"></script>
<script type="text/javascript" src="js/header_function.js"></script>

但$ .parseJSON(data).shift()的shift函数不起作用 我无法找到有关换档功能的任何参考资料

建议会有所帮助

3 个答案:

答案 0 :(得分:0)

检查一下:

https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/Array/shift

您的json应该是一个数组,不应该是执行 shift() 的对象。

您可以参考此问题将对象转换为JS中的数组:

https://stackoverflow.com/questions/6857468/converting-a-js-object-to-an-array-using-jquery

答案 1 :(得分:0)

使用

`"delete siteshistory.name"`;

而不是

"siteshistory.shift()";

答案 2 :(得分:0)

//您尝试shift()的内容不是数组  尝试以下代码

 var siteshistory = [];

    siteshistoryObj = $.parseJSON('{ "name":"John", "age":31, "city":"New York" }');//add here your ajax response

   //converting to array
    $.each(siteshistoryObj, function (index, order) {
      siteshistory.push({index : index});
    });
    siteshistory.shift();

console.log(siteshistory);// check array values