javascript - 使用 Postman 检查嵌套 JSON 中的值

标签 javascript json google-chrome-app assert postman

我在 POSTMAN chrome 应用程序中使用 GET 请求从 API 返回了一个嵌套的 JSON。我的 JSON 看起来像这样

"result": [
{
  "_id": "some_id",
  "name": "India",
  "code": "IN",
  "link": "http://www.india.info/",
  "closingTime": "2017-02-25T01:12:17.860Z",
  "openingTime": "2017-02-25T06:12:17.205Z",
  "image": "image_link",
  "status": "online",
  "serverStatus": "online",
  "games": [
    {
      "_id": "some_game_id1",
      "name": "Cricket"
    },
    {
      "_id": "some_another_id1",
      "name": "Baseball"
    },
    {
      "_id": "some_another_id_2",
      "name": "Basketball"
    }
  ]
},
{
  "_id": "some_id",
  "name": "Australia",
  "code": "AUS",
  "link": "https://www.lonelyplanet.com/aus/adelaide",
  "closingTime": "2017-02-28T05:13:38.022Z",
  "openingTime": "2017-02-28T05:13:38.682Z",
  "image": "some_image_url",
  "status": "offline",
  "serverStatus": "online",
  "games": [
    {
      "_id": "some_game_id_2",
      "name": "Cricket"
    },
    {
      "_id": "some_another_id_3",
      "name": "Kho-Kho"
    },
    {
      "_id": "some_another_id_4",
      "name": "Badminton"
    },
    {
      "_id": "some_another_id_5",
      "name": "Tennis"
    }
  ]
},

我正在尝试测试我的响应正文是否有 "name":"India" 和带有 "some_game_id1""game"包含 "name":"cricket"

我经历了这个link答案是为“名称”创建一个数组,然后在该数组中检查该数组是否包含该值。我试过了,但我的代码失败了。

另外,我尝试使用这个在 JSON 正文中通过索引搜索元素 -

   var searchJSON = JSON.parse(responseBody);
   tests["name contains India"] = searchJSON.result.name[0]==="India";

但这也失败了。我尝试使用 .value 附加在上面代码的第二行,但它也失败了。我怎样才能检查这个东西?

最佳答案

您需要将 [0] 放在 result(数组)之后而不是 name(字符串)之后。

此外,使用正则表达式检查名称是否包含 'India',因为使用 === 仅检查名称是否恰好是 India。

var searchJSON = JSON.parse(responseBody)
tests["name contains India"] = /India/.test(searchJSON.result[0].name)


演示片段:

var responseBody = `{
  "result": [{
      "_id": "some_id",
      "name": "India",
      "code": "IN",
      "link": "http://www.india.info/",
      "closingTime": "2017-02-25T01:12:17.860Z",
      "openingTime": "2017-02-25T06:12:17.205Z",
      "image": "image_link",
      "status": "online",
      "serverStatus": "online",
      "games": [{
          "_id": "some_game_id1",
          "name": "Cricket"
        },
        {
          "_id": "some_another_id1",
          "name": "Baseball"
        },
        {
          "_id": "some_another_id_2",
          "name": "Basketball"
        }
      ]
    },
    {
      "_id": "some_id",
      "name": "Australia",
      "code": "AUS",
      "link": "https://www.lonelyplanet.com/aus/adelaide",
      "closingTime": "2017-02-28T05:13:38.022Z",
      "openingTime": "2017-02-28T05:13:38.682Z",
      "image": "some_image_url",
      "status": "offline",
      "serverStatus": "online",
      "games": [{
          "_id": "some_game_id_2",
          "name": "Cricket"
        },
        {
          "_id": "some_another_id_3",
          "name": "Kho-Kho"
        },
        {
          "_id": "some_another_id_4",
          "name": "Badminton"
        },
        {
          "_id": "some_another_id_5",
          "name": "Tennis"
        }
      ]
    }
  ]
}`

var tests = {}

var searchJSON = JSON.parse(responseBody)
tests["name contains India"] = /India/.test(searchJSON.result[0].name)

console.log(tests) //=> { "name contains India": true }

关于javascript - 使用 Postman 检查嵌套 JSON 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42850233/

相关文章:

javascript - Restangular 无限滚动

json - Angular i18n json 文件中的自动比较检查

android - 将数据添加到ArrayList android

google-chrome-app - 如何使用基于 webview 的 Chrome 托管应用程序保留 cookie

javascript - Chrome 未设置本地存储

javascript - 如何向 jquery 灯箱添加关闭按钮?

javascript - 替换 HTML 显示的 mongodb 值

javascript - 如何使用 jQuery 更改 html5 视频中的源

Python - Flask Api 异常

javascript - 让 Chrome 应用程序窗口在屏幕右下角打开