gpt4 book ai didi

javascript - 是什么导致 $.parseJSON() 和 JSON.parse() 出现 “Uncaught SyntaxError: Unexpected token o”

转载 作者:行者123 更新时间:2023-12-03 00:12:54 25 4
gpt4 key购买 nike

我已经查看了 SO 和 Google,但注意到这有所帮助,但我不确定如何继续。我有一个数组,我使用 echo json_encode() 从 php 页面返回该数组看起来像这样:

[" "," "," "," "," ",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]

但我不断收到Unexpected token o at Object.parse (native)当我尝试使用 JSON.parse() 和 Unexpected token o at Function.parse (native) 时当我使用 JQuery 替代方案时。

但是当我将它附加到 $scope 时我可以在页面上使用它打印出来,那么我做错了什么以及如何纠正这个问题?

这是我的 Controller

function myController($scope, memberFactory) {

response = memberFactory.getMonth("2013-08-01 06:30:00");
//$scope.response = response;
var monthDays = $.parseJSON(response);

var dates = [];
for (var i = 0; i < monthDays.length; i++) {
if (i % 7 == 0) dates.push([]);
dates[dates.length - 1].push(monthDays[i]);
}
$scope.dates = dates;
//
}

这是我的服务方法:

obj.getMonth = function (date) {
var month = $q.defer();
$http.get('getMonth.php?date=' + date)
.success(function (data, status, headers, config) {
month.resolve(data);

});

return month.promise;
}

这是我的 php:

<?php $daysOfMonth=[ " ", " ", " ", " ", " ",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];
echo json_encode($daysOfMonth); ?>

我尝试过的事情

如果我返回typeof我得到了对象,所以我尝试了 var monthDays = Array.prototype.slice.call(response)var monthDays = $.map(response, function (value, key) { return value; });正如一些答案中所建议的here ,我也尝试过JSON.stringify()但我只是得到 {}结果

我对此感到非常沮丧,真的需要有人指出我正确的方向

更新

我相信这可能是使用 $q.defer() 的问题因为我更新了 getMonth 方法,如下所示:

obj.getMonth = function (date) {
var month = $q.defer();
$http.get('getMonth.php?date=' + date)
.success(function (data, status, headers, config) {
month.resolve(data);
console.log("data " + data[0]);
console.log("resolved " + month.promise[0]);

});

return month.promise;
}

现在我得到1对于 console.log("data " + data[0]);正如预期的那样,但我得到了 console.log(month);我得到[object Object]对于 console.log(month.promise)我得到[object Object]console.log(month.promise[0]);我得到undefined

最佳答案

response 已解析,无需再次解析。

如果您再次解析它,它将首先执行 toString 转换,以便您进行解析

"[object Object]"

这解释了意外的标记o

关于javascript - 是什么导致 $.parseJSON() 和 JSON.parse() 出现 “Uncaught SyntaxError: Unexpected token o”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18130081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com