使用 Postman 检查嵌套 JSON 中的值 [英] Checking a value in a nested JSON using Postman

查看:117
本文介绍了使用 Postman 检查嵌套 JSON 中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a nested JSON returned from an API that I am hitting using a GET request, in POSTMAN chrome app. My JSON looks like this

"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""game""some_game_id1"包含 "name":"cricket".

I am trying to test whether my response body has "name":"India" and the "game" with "some_game_id1" contains the "name":"cricket".

我浏览了这个 link 的答案是为name"创建一个数组,然后在数组中检查该数组是否包含该值.我试过了,但我的代码失败了.

I went through this link where the answer is to have an array for "name"created and then check within the array whether the array contains the value. I tried this but my code fails.

此外,我尝试使用此 JSON 正文中的索引搜索元素 -

Also, I tried searching the element by the index within the JSON body using this -

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

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

But this also fails. I tried using the .value appended with the second line of above code, but it also fails. How can I check this thing?

推荐答案

[0] 需要放在 result(数组)之后,而不是 name(这是一个字符串).

You need to put [0] after result (which is an array) rather than name (which is a string).

另外,使用正则表达式检查名称是否包含'India',因为使用===只会检查名称是否正好是印度.

Also, use a regular expression to check whether the name contains 'India', because using === only checks if the name is exactly 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 }

这篇关于使用 Postman 检查嵌套 JSON 中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆