2013-08-07 91 views
0

好的,這可能看起來像一個愚蠢的問題,但請記住,JSON對我來說是全新的(我以前聽過這個表達,但對此一無所知)。檢索JSON信息? Jquery

我有這個回調函數,當新的註釋被添加到disqus線程時,通過電子郵件通知站點上的作者。

<script type="text/javascript"> 
    function disqus_config() { 
     this.callbacks.onNewComment = [function(comment) { 

      var authname = document.getElementById('authname').value; 
      var authmail = document.getElementById('authmail').value; 
      var link = document.getElementById('link').value; 
      var disqusAPIKey = 'MY_API_KEY'; 
      var disqusCall = 'https://disqus.com/api/3.0/posts/details.json?post=' + comment.id + '&api_key=' + disqusAPIKey; 

      $.ajax({ 
       type: 'POST', 
       url: 'URL_OF_MAIL.PHP', 
       data: {'authname': authname, 'authmail': authmail, 'link': link, 'disqusCall': disqusCall}, 
       cache: false, 
      }); 
     }]; 
    } 
</script> 

一切都像一個魅力。除了......我的理解範圍之外的是(我已經搜索過但是看到因爲我對JSON一無所知,所以我甚至不知道該找什麼)如何提取信息從'disqusCall'變量?現在,我只是得到一個鏈接(包含兩件我感興趣的內容,名稱和消息)。我想將這些包含在郵件中。

我確定這是簡單的「解碼」JSON信息,但我不知道如何。而且我在這個主題上發現的所有帖子都讓我感到困惑,甚至更多哈哈

+0

http://stackoverflow.com/questions/9887009/how-do-i-iterate-through-this-json-object-in-jquery這可能有幫助,谷歌「迭代通過json對象jquery」你應該找到您在該搜索中的答案 –

+0

@RickCalder感謝您的建議。但我不想檢索任何對象/值的列表。我只想提取一個名稱和完整的消息。 – axelra82

+0

正確,但它仍然作爲JSON對象返回,即使數組中只有一個項目,仍需要將其從對象中取出。 –

回答

0

所以我能夠得到這個工作與一個朋友誰擁有一些更好的JSON知識的幫助。

這是我結束了

<script type="text/javascript"> 
    function disqus_config() { 
     this.callbacks.onNewComment = [function(comment) { 

      var authname = document.getElementById('authname').value; 
      var authmail = document.getElementById('authmail').value; 
      var link = document.getElementById('link').value; 
      var disqusAPIKey = 'MY_API_KEY'; 

      $.ajax({ 
       type: 'GET', 
       url: 'https://disqus.com/api/3.0/posts/details.json', 
       data: { 
        'post': comment.id, 
        'api_key': disqusAPIKey 
       }, 

       success: function (data) { 
        var post_author_name = data.response.author.name; 
        var comment = data.response.raw_message; 

        $.ajax({ 
         type: 'POST', 
         url: 'URL_TO_MAIL.PHP', 
         data: { 
          'authname': authname, 
          'authmail': authmail, 
          'link': link, 
          'post_author_name': post_author_name, 
          'comment': comment 
         }, 
        }); 
       }, 
       cache: false, 
      });    
     }]; 
    } 
</script> 

您可以查看的文章我寫的這個here。它描述了我使用JSON的原因。

0

您需要提供成功回調,以便使用返回的json數據。

$.ajax({ 
    type: 'POST', 
    url: 'URL_OF_MAIL.PHP', 
    data: { 
     'authname': authname, 
     'authmail': authmail, 
     'link': link, 
     'disqusCall': disqusCall 
    }, 
    cache: false, 
    success: function (data) { 
     if(data.length>0) 
     { 
      //read the json data 
     } 
    } 

}); 
+0

謝謝你的回答@Ravi。如何「讀取」JSON數據?我試圖得到的是,將「'disqusCall':disqusCall」更改爲'name':名稱和'message':消息。以便我可以在電子郵件中添加acctuall消息和海報名稱。我會在「//讀取json數據」下放什麼?這是添加這些值的正確位置嗎? – axelra82