getJSON警报未返回任何内容-数据问题

getJSON alert not returning anything - data issue?

本文关键字:数据 问题 任何内 返回 getJSON      更新时间:2023-09-26

我在读取以下数据时遇到问题:

它看起来像这样:

{
  "ok": true,
  "messages": [
    {
      "text": "moo",
      "username": "bot",
      "type": "message",
      "subtype": "bot_message",
      "ts": "1448226157.000008"
    },
    {
      "text": "boo",
      "username": "bot",
      "type": "message",
      "subtype": "bot_message",
      "ts": "1448225998.000007"
    }
  ],
  "has_more": true
}

这是代码:

$.getJSON("https://slack.com/api/channels.history?token=xxxx&channel=C0E&pretty=1", function(result){
            $.each(result, function(i, field){
                $("div").append(field + " ");
            });
        });

我得到的只是

[对象对象][对象对象]

如何使数据正确显示?

假设:

  1. 这是完整的JSON
  2. 你想循环浏览消息

你的循环应该更像:

$.each( result.messages,
  function( i, msg ) {
    $("div").append( msg.username + ": " + msg.text + " " );   
  }
);

(或您希望显示的任何字段)

你的意思是这样的:

var data = `{"ok": true,"messages": [
        {
            "text": "moo",
            "username": "bot",
            "type": "message",
            "subtype": "bot_message",
            "ts": "1448226157.000008"
        },
        {
            "text": "boo",
            "username": "bot",
            "type": "message",
            "subtype": "bot_message",
            "ts": "1448225998.000007"
        }
    ],
    "has_more": true
}`;
$(function() {
  var result = $.parseJSON(data);
  $.each(result, function(i, item) {
    if (typeof item != "object") {
      alert(item);
    } else {
      $.each(item, function(i, obj) {
        alert(obj.ts);
      });
    }
  });
});
   

样品小提琴:https://jsfiddle.net/4v0x34b1/