【发布时间】:2021-04-27 18:21:17
【问题描述】:
我正在运行 Postman,我想使用可视化工具将 JSON 响应转换为一组表。本质上,响应在其“内容”属性中包含一组对象。我想遍历该数组,并为每个对象生成一个属性名称、值行的表。
假设我有这样的结果:
{
"content": [
{
"Study Number": "X123",
"Primary Completion Date Planned": "2018-11-09",
"Primary Completion Date Actual": null,
"Favourite Colours": [
"Blue"
]
}
],
"last": true,
"totalElements": 1,
"totalPages": 1,
"first": true,
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"size": 100,
"number": 0,
"numberOfElements": 1,
"empty": false
}
我可以对其进行迭代以获得这样的可行结果,只是内容的第一个元素:
var template = `<table bgcolor="#FFFFFF">
<tr>
<th>Prop</th>
<th>Val</th>
</tr>
{{#each response}}
<tr>
<td>{{key}}</td>
<td>{{val}}</td>
</tr>
{{/each}}
</table>`;
const response = pm.response.json();
data = { 'response' : [] };
for (var prop in response.content[0]){
if (response.content[0].hasOwnProperty(prop)){
data['response'].push({ 'key' : prop, 'val' : response.content[0][prop] });
}
}
// Set visualizer
pm.visualizer.set(template, data);
如何迭代“内容”中的多个元素?我尝试在每个循环中使用“#this”进行迭代,但我似乎无法找出正确的语法。
【问题讨论】:
-
这篇文章有帮助吗:stackoverflow.com/a/44095020/3397771 ?
-
嗯...不确定。问题是,我事先不知道属性名称或属性计数。而且,可悲的是,进一步阅读,这是 O.P. 的反对意见
-
我不明白您为什么要构建
data.response数组以发送到模板。您可以直接将pm.response发送到您的模板并将循环(迭代)留给模板吗? -
如果您能告诉我该怎么做,我将不胜感激。 :-)
-
我的两个问题 - 事先不知道属性名称,以及遍历对象数组。 JS 解决了第 1 项,因为我显然只想查看本地属性,并且通过将它们转换为 'prop' 和 'val' 我可以构建一个模板。我看不到如何在 Handlebars 中构建动态模板 :-(
标签: json templates iteration postman handlebars.js