簡體   English   中英

JSON 調用返回 [object Object] 或未定義

[英]JSON call returns [object Object] or undefined

非常初級的問題。 嘗試學習 JSON 並且無法獲得正確的返回數據。 我正在嘗試使用 JSON 從 php 表單中返回錯誤,使用json_encode($errs, JSON_FORCE_OBJECT) ,但首先我想讓下面的非常簡單的代碼能夠理解 Z0ECD10814C1D7A287ABB74A。

我在這里查看了類似的線程,閱讀了整個 JSON.org 文檔,查看了 JQuery 的 $.getJSON() 方法並插入了文檔中的確切代碼,以及 JSON 文檔的確切代碼,我仍然可以除了“未定義”或“[object, Object]”之外,似乎沒有得到響應。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <!---CSS-->
    <link href="style/960.css" media="all" rel="stylesheet" type="text/css" />
    <link href="style/pubstyle.css" media="all" rel="stylesheet" type="text/css" />
    <!--- Javascript -->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" 
    type="text/javascript"></script>
    <script src="javascripts/form.js" type="text/javascript"></script>
    <script src="javascripts/validate.min.js" type="text/javascript"></script>
    <script src="javascripts/json2.js" type="text/javascript"></script>
    </head>
    <body>
    <script type="text/javascript">
         $(document).ready(function() {
             var resp = {"message":"hi"};
         $("a#button").click(function(resp) {
           alert(resp)
         });
         });

    </script>

    <a id="button" href="#">Button</a>
    </body>
    </html>

上面的代碼返回帶有“[object Object]”的警報。 當我將代碼更改為:

    $(document).ready(function() {
             var resp = {"message":"hi"};
         $("a#button").click(function(resp) {
           alert(resp.message)
         });
         });

我收到“未定義”警報。 我嘗試將其放入數組 object

{ "messages": [ {"message":"hi"}]}

並用

resp.messages[0].message

沒有運氣。 我嘗試將 Content-Type 更改為“application/json”和“text/plain”,但都沒有奏效。 也試過

$(document).ready(function() {  
var resp = jQuery.parseJSON('{"message":"hi"}');
$("a#button").click(function(resp) {
alert(resp.message)
});
});

您在這里混淆了幾個不同的元素。

簡單示例,基於您問題中的最后一個代碼塊:

$(document).ready(function() {  
    var resp = $.parseJSON('{"message":"hi"}');
    $('#button').click(function(event) {
        alert(resp.message);
    });
});

您的此代碼版本不起作用,因為click回調 function 接收點擊事件 object作為其參數。 回調中的resp參數名稱隱藏了resp變量。

暫無
暫無

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

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