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

hel*_*one 4 javascript json postman

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

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

{
    "User" : {
        "userId" : "11111",
        "userPropertiesAsJsonString" : ?
    }
}
Run Code Online (Sandbox Code Playgroud)

userPropertiesAsJsonString是;

{
    "properties" : {
        "propertyName" : "test",
        "propertyDesc" : "desc"
    }
}
Run Code Online (Sandbox Code Playgroud)

Jas*_*ngs 8

预请求脚本:

let query = {}

pm.environment.set('query', JSON.stringify(query));
Run Code Online (Sandbox Code Playgroud)

身体:

{{query}}
Run Code Online (Sandbox Code Playgroud)


san*_*yan 5

尝试这个 :

{
    "User" : {
        "userId" : "11111",
        "userPropertiesAsJsonString" : "{\"properties\" : {\"propertyName\" : \"test\",\"propertyDesc\" : \"desc\"}}"
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这必须在一行中,这是一个非常糟糕的解决方案。我希望我们可以使用`''`或(反勾号) (3认同)

sab*_*ele 5

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

在预请求脚本选项卡中,

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

pm.environment.set(
    'userPropertiesAsJsonString',
    JSON.stringify(JSON.stringify(userPropertiesAsJsonString))
);
Run Code Online (Sandbox Code Playgroud)

然后,在“正文”选项卡中,

{
    "User" : {
        "userId" : "11111",
        "userPropertiesAsJsonString" : {{userPropertiesAsJsonString}}
    }
}
Run Code Online (Sandbox Code Playgroud)

userPropertiesAsJsonString变量字符串化两次将允许您转义 JSON 字符串(从此答案获得的解决方案;请参阅此要点以获得更详细的解释),然后您将获得一个请求正文,该正文看起来与sanatsathyan提供的答案中的那个相同.