簡體   English   中英

PHP數組上的json_encode返回字符串

[英]json_encode on a PHP array returns a string

我已經搜索了該網站,卻找不到像我這樣的問題,所以我希望這不是一個副本。

因此,我有一個PHP腳本,該腳本應該將JSON數組返回到我的AJAX,並且我想使用該數組來生成URL。

但是,即使我非常確定我在PHP端都有一個數組,但是當我json_encode時,我在另一端得到了一個簡單的字符串。

PHP代碼:

    $n = 10;
    $all_titles = array();

    while($row = mysqli_fetch_array($result)) {
        $title = trim($row['Job Title']);
        if(array_key_exists($title, $all_titles)) {
            ++$all_titles[$title];
        } else {
            $all_titles[$title] = 1;
        }
    }

    arsort($all_titles);
    $top_titles = array_slice($all_titles, 0, $n);
    $title_list = array();

    foreach (array_values($top_titles) as $key => $val) {
        array_push($title_list, array_keys($top_titles)[$key]);
    }
    echo json_encode($title_list);

根據我所做的其他測試,到目前為止,這些數組操作似乎可以正常運行,因此,我很確定$ title_list是一個數組。

這是我的JS:

    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        alert("Generated URL: " + URL_gen(xmlhttp.responseText));
      }
    }

最后出現問題的地方:

function URL_gen(list) {
    var url = list[2];
    return url;
}

我已經更改了list [#]中的數字(list [0],list [1]等),每個數字都是一個字符,這意味着列表(從onreadystatechange傳遞為上述PHP函數的響應文本)是字符串,而不是JSON數組。

有什么建議么?

這就是它的作用。 返回一個字符串。 您需要在客戶端解析它。

alert("Generated URL: " + URL_gen(JSON.parse(xmlhttp.responseText)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM