无法从邮递员响应机构获得价值

时间:2019-03-06 04:57:30

标签: javascript postman-pre-request-script postman-testcase

我有一个API,其响应如下:

"message": "Success!",
    "user": {
        "id": 17,
        "first_name_kanji_or_hiragana": "Hiragana",
        "last_name_kanji_or_hiragana": "Name",
        "first_name_katakana": null,
        "last_name_katakana": null,
        "email": "user@example.com",
        "image_path": null,
        "email_verified_at": "2019-03-06 04:44:46",
        "type": "admin",
        "created_at": "2019-03-06 04:44:46",
        "updated_at": "2019-03-06 04:44:46",
        "deleted_at": null,
        "full_name": "Name Hiragana",
        "full_image_path": null,
        "roles": [

每次运行API时,都会生成新用户id。我想做的是,我想每次运行api时获取ID,然后在下一个响应中使用该ID。 我已经使用下面的代码来获取ID,但是它不起作用

pm.test(responseBody, true)
var jsonData = JSON.parse(responseBody); 
jsonData.data.user[0].id

3 个答案:

答案 0 :(得分:0)

pm.test(responseBody, true)
var jsonData = JSON.parse(responseBody); 
jsonData.data.user[0].id // youre access the user if its array its not

只需使用jsonData.data.user.idjsonData.data.user[id]

答案 1 :(得分:0)

您正在尝试访问名为user的数组

  

jsonData.data.user [0] .id

但是用户是一个对象,因此您需要访问: jsonData.data.user.id

有时您需要直接从请求中检查完整的json。

答案 2 :(得分:0)

user不是数组。尝试下面的一个。

jsonData.data.user.id

当您具有如下所示的JSON时,您的解决方案将起作用,

    "lib_folders": {
        "changed": false,
        "examined": 5,
        "failed": false,
        "files": [
            {
                "atime": 1549608521.3831923,
                "ctime": 1548742613.5470872,
                "path": "/root/abc/xyz",
                "xusr": true
            },
            {
                "atime": 1549608521.4031928,
                "ctime": 1548742462.3279672,
                "path": "/root/123/456",
                "xusr": true
            }
        ],
        "matched": 2,
        "msg": ""
    }

对于上述JSON,如果要获取第一个文件的path,请使用以下代码,

jsonData.data.lib_folders.files[0].path