如何使用Postman将JSON对象作为JSON字符串发送?

时间:2018-01-18 08:50:59

标签: javascript json postman

我想发送一个JSON请求,但问题是我需要将我的userPropertiesAsJsonString字段作为JSON字符串发送。

如何将userPropertiesAsJsonString作为JSON字符串发送?

{
    "User" : {
        "userId" : "11111",
        "userPropertiesAsJsonString" : ?
    }
}

userPropertiesAsJsonString是;

{
    "properties" : {
        "propertyName" : "test",
        "propertyDesc" : "desc"
    }
}

4 个答案:

答案 0 :(得分:4)

试试这个:

{
    "User" : {
        "userId" : "11111",
        "userPropertiesAsJsonString" : "{\"properties\" : {\"propertyName\" : \"test\",\"propertyDesc\" : \"desc\"}}"
    }
}

答案 1 :(得分:2)

Jason Mullings'的答案对我不起作用,但这是一个很好的基础,它使我能够提出与您非常相似的问题的解决方案。

在“请求前脚本”标签中,

const userPropertiesAsJsonString = {
    "properties" : {
        "propertyName" : "test",
        "propertyDesc" : "desc"
    }
}

pm.environment.set(
    'userPropertiesAsJsonString',
    JSON.stringify(JSON.stringify(userPropertiesAsJsonString))
);

然后,在“正文”标签中,

{
    "User" : {
        "userId" : "11111",
        "userPropertiesAsJsonString" : {{userPropertiesAsJsonString}}
    }
}

userPropertiesAsJsonString变量进行两次字符串化将使您可以转义JSON字符串(从this answer获得的解决方案;有关详细说明,请参见this gist),然后您将可以获取一个请求主体,看起来像sanatsathyan提供的答案中的那个。

答案 2 :(得分:0)

由于JSON表示JavaScript Object Notation,因此您只需将userPropertiesAsJsonString复制到原始JSON中即可:

{
    "User" : {
        "userId" : "11111",
        "userPropertiesAsJsonString" : {
            "properties" : {
                "propertyName" : "test",
                "propertyDesc" : "desc"
            }
        }
    }
}

将此JSON复制并粘贴到Postman请求体(原始格式化)并设置标题“Content-Type:application / json”。

如果您在请求之前必须做更多精美的事情,可以在Postman中执行预请求脚本:https://www.getpostman.com/docs/postman/scripts/pre_request_scripts

有关JSON的更多信息,请参阅此处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON

答案 3 :(得分:0)

请求前脚本:

let query = {}

pm.environment.set('query', JSON.stringify(query));

正文:

{{query}}