【问题标题】:How can i get data from array in express我如何从快递中的数组中获取数据
【发布时间】:2016-05-20 15:19:01
【问题描述】:

我在 nodejs 中使用带有 express ejs 的 rest API。 从那个 api 我得到如下的 JSON 数据。 在此数据中,数组内部有一个数组。 问题是我想要 guid 的 feature_image 值。但是当我尝试获取该值时,它会显示has no method 'forEach 错误。

[
  {
    "ID": 161,
    "title": "Compant Name 3",
    "status": "publish",
    "type": "testimonial",
    "author": {
      "ID": 1,
      "username": "admin",
      "name": "admin",
      "first_name": "",
      "last_name": "",
      "nickname": "admin",
      "slug": "admin",
      "URL": "",
      "avatar": "http://2.gravatar.com/avatar/56282b1eb6c5d293a03d2c167924b197?s=96",
      "description": "",
      "registered": "2015-04-28T10:14:02+00:00",
      "meta": {
        "links": {
          "self": "http://tryitoneyewear.com/wp-json/users/1",
          "archives": "http://tryitoneyewear.com/wp-json/users/1/posts"
        }
      }
    },
    "content": "<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem </p>\n",
    "parent": null,
    "link": "http://tryitoneyewear.com/testimonial/compant-name-3/",
    "date": "2015-06-04T07:33:29",
    "modified": "2015-06-04T08:01:26",
    "format": "standard",
    "slug": "compant-name-3",
    "guid": "http://tryitoneyewear.com/?post_type=testimonial&#038;p=161",
    "excerpt": "<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem</p>\n",
    "menu_order": 0,
    "comment_status": "open",
    "ping_status": "open",
    "sticky": false,
    "date_tz": "UTC",
    "date_gmt": "2015-06-04T07:33:29",
    "modified_tz": "UTC",
    "modified_gmt": "2015-06-04T08:01:26",
    "meta": {
      "links": {
        "self": "http://tryitoneyewear.com/wp-json/posts/161",
        "author": "http://tryitoneyewear.com/wp-json/users/1",
        "collection": "http://tryitoneyewear.com/wp-json/posts",
        "replies": "http://tryitoneyewear.com/wp-json/posts/161/comments",
        "version-history": "http://tryitoneyewear.com/wp-json/posts/161/revisions"
      }
    },
    "featured_image": {
      "ID": 28,
      "title": "dummy_img",
      "status": "inherit",
      "type": "attachment",
      "author": {
        "ID": 1,
        "username": "admin",
        "name": "admin",
        "first_name": "",
        "last_name": "",
        "nickname": "admin",
        "slug": "admin",
        "URL": "",
        "avatar": "http://2.gravatar.com/avatar/56282b1eb6c5d293a03d2c167924b197?s=96",
        "description": "",
        "registered": "2015-04-28T10:14:02+00:00",
        "meta": {
          "links": {
            "self": "http://tryitoneyewear.com/wp-json/users/1",
            "archives": "http://tryitoneyewear.com/wp-json/users/1/posts"
          }
        }
      },
      "content": "<p class=\"attachment\"><a href='http://tryitoneyewear.com/wp-content/uploads/2015/04/dummy_img.jpg'><img width=\"200\" height=\"200\" src=\"http://tryitoneyewear.com/wp-content/uploads/2015/04/dummy_img.jpg\" class=\"attachment-medium\" alt=\"dummy_img\" /></a></p>\n",
      "parent": null,
      "link": "http://tryitoneyewear.com/?attachment_id=28",
      "date": "2015-04-29T06:50:48",
      "modified": "2015-04-29T06:50:48",
      "format": "standard",
      "slug": "dummy_img",
      "guid": "http://tryitoneyewear.com//wp-content/uploads/2015/04/dummy_img.jpg",
      "excerpt": null,
      "menu_order": 0,
      "comment_status": "open",
      "ping_status": "open",
      "sticky": false,
      "date_tz": "UTC",
      "date_gmt": "2015-04-29T06:50:48",
      "modified_tz": "UTC",
      "modified_gmt": "2015-04-29T06:50:48",
      "meta": {
        "links": {
          "self": "http://tryitoneyewear.com/wp-json/media/28",
          "author": "http://tryitoneyewear.com/wp-json/users/1",
          "collection": "http://tryitoneyewear.com/wp-json/media",
          "replies": "http://tryitoneyewear.com/wp-json/media/28/comments",
          "version-history": "http://tryitoneyewear.com/wp-json/media/28/revisions"
        }
      },
      "terms": [],
      "source": "http://tryitoneyewear.com/wp-content/uploads/2015/04/dummy_img.jpg",
      "is_image": true,
      "attachment_meta": {
        "width": 200,
        "height": 200,
        "file": "2015/04/dummy_img.jpg",
        "sizes": {
          "thumbnail": {
            "file": "dummy_img-150x150.jpg",
            "width": 150,
            "height": 150,
            "mime-type": "image/jpeg",
            "url": "http://tryitoneyewear.com/wp-content/uploads/2015/04/dummy_img-150x150.jpg"
          },
          "owl_widget": {
            "file": "dummy_img-180x100.jpg",
            "width": 180,
            "height": 100,
            "mime-type": "image/jpeg",
            "url": "http://tryitoneyewear.com/wp-content/uploads/2015/04/dummy_img-180x100.jpg"
          }
        },
        "image_meta": {
          "aperture": 0,
          "credit": "",
          "camera": "",
          "caption": "",
          "created_timestamp": 0,
          "copyright": "",
          "focal_length": 0,
          "iso": 0,
          "shutter_speed": 0,
          "title": "",
          "orientation": 0
        }
      }
    },
    "terms": []
  }
]

【问题讨论】:

  • 也发布产生错误的代码。听起来你正试图在不是数组的东西上使用forEach,所以看看什么会有用。
  • 我在该数据结构中没有看到数组包含数组的任何地方。我所看到的要么是一个包含对象的数组,要么是一些包含(空)数组的对象。

标签: arrays node.js express ejs


【解决方案1】:

你应该了解更多关于 json 和可能是 javascript 的知识

您的 json 是包含单个对象的数组。 features_image 也是对象,因此要获得您需要类似

的值
your_json[0].featured_image.guid

【讨论】:

    【解决方案2】:

    feature_image 不是数组,因此没有可用的 forEach 函数。 要使用对象,只需这样做:

    yourJsonObject.forEach(function(obj) {
        console.log(obj.feature_image.ID); // shows 28
    });
    

    【讨论】:

      猜你喜欢
      • 2021-01-19
      • 1970-01-01
      • 2021-12-14
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多