我做了一些研究,结果发现如果字符串不是UTF8格式,则可能会发生这种情况。
但是,经过大量测试,我可以说它的确是UTF8(或者至少我有100%的把握是ASCII格式),所以显然不是。
for($i=0; $i<$addNovelCount; $i++) {
$query = "SELECT *
FROM `NovelPages`
WHERE `NovelID` = '".mysqli_real_escape_string($link, $novelResults[$i])."'";
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_assoc($result)){
$Novel[] = $row['Image'];
$NovelID[] = $row['NovelID'];
$PageID[] = $row['ID'];
}
}
echo '<script>alert("'.json_encode($PageID).'");</script>';
还需要满足其他条件吗?
这是我的代码;
java.io.IOException: com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Bucket is requester pays bucket but no user project provided.",
"reason" : "required"
} ],
"message" : "Bucket is requester pays bucket but no user project provided."
}
答案 0 :(得分:0)
我解决了这个问题,它是如此简单又滑稽,我想死掉...特别是我花了很多天研究这个问题!
事实证明,原因是我将json放在引号中,从而在数组中创建了双引号,从而破坏了语法。这让我失望了,因为我使用警报作为调试尝试修复的真实事物的一种方法,该问题是使用json在javascript cookie中放置php变量,而不是...
$linkSearchCacheJson = json_encode($linkSearchCacheCleared);
echo'
<script>
var cookieVar = '.$linkSearchCacheJson.';
alert(cookieVar);
document.cookie = "linkSearchCache = " + cookieVar;
</script>
';
我在做...
echo'
<script>
document.cookie = "linkSearchCache = '.json_encode($linkSearchCacheCleared).'";
</script>
';
(再次)破坏了语法,因为它在双引号中放置了双引号。
故事的道德; json_encode将变量用双引号引起来。
答案 1 :(得分:-1)
您无法警告json_encoded数据或数据数组,请尝试console.log结果 希望这能解决您的问题。
echo '<script>console.log("'.json_encode($PageID).'");</script>';