我想发送一个JSON请求,但问题是我需要将我的userPropertiesAsJsonString字段作为JSON字符串发送。
如何将userPropertiesAsJsonString作为JSON字符串发送?
{
"User" : {
"userId" : "11111",
"userPropertiesAsJsonString" : ?
}
}
userPropertiesAsJsonString是;
{
"properties" : {
"propertyName" : "test",
"propertyDesc" : "desc"
}
}
答案 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}}