首页 > 解决方案 > 在 POSTMAN 中将 json 数据可视化为表

问题描述

我想将邮递员中的 json 响应可视化为表格。

我已经把这样的东西放到邮递员的“测试”选项卡中

let gitdata = pm.response.json();
let template = 
`
 <table bgcolor="#FFFFGF">
        <tr>
            <th>Login</th>
            <th>id</th>    {{company}}        
        </tr>

        {{#each gitdata }}
            <tr>
                <td>{{login}}</td>
                <td>{{ID}}</td>
            </tr>
        {{/each}}
    </table>
`
//console.log(gitdata);//

pm.visualizer.set(template, gitdata)

我不明白代码的“{{#each”部分是如何工作的。发送请求在“可视化”选项卡中显示空表,尽管“漂亮”选项卡显示如下结果:

{
    "login": "string",
    "id": int,
    "node_id": "string",
    "avatar_url": "url",
    "gravatar_id": "",
and so on...
}

我该如何解决这个问题?

标签: htmljsonpostman

解决方案


#每个

现在关于 #each ,是一个迭代器。它允许你遍历值对象中的所有元素,值对象是一个数组。

如果 value 是一个对象,它会为您提供对象的值,它可以作为 {{this}} 访问

首先,您必须在可视化工具中将数据公开为对象,

pm.visualiser.set(template, {"somekey":"value"})

现在以 {{somekey}} 访问模板内的值

示例 1:数组

let gitdata = [{ "login": "Login1", "ID": "id1" }, { "login": "Login2", "ID": "id2" }, { "login": "Login3", "ID": "id3" }];
let template =
    `
 <table bgcolor="#FFFFGF">
        <tr>
            <th>Login</th>
            <th>id</th>    {{company}}        
        </tr>

        {{#each data }}
            <tr>
                <td>{{login}}</td>
                <td>{{ID}}</td>
            </tr>
        {{/each}}
    </table>
`
//console.log(gitdata);//

pm.visualizer.set(template, { "data": gitdata })

示例 2:对象

let gitdata = { "login": "Login1", "ID": "id1" };
let template =
    `
 <table bgcolor="#FFFFGF">
        <tr>
            <th>Login</th>
            <th>id</th>    {{company}}        
        </tr>

        {{#each data }}
            
         
                <td>{{this}}</td>
               
            
        {{/each}}
    </table>
`
//console.log(gitdata);//

pm.visualizer.set(template, { "data": gitdata })

现在,在您的情况下,您只想访问特定字段,因此不必使用 each ,而只需像 @Danny 提到的那样显式调用该字段:

let gitdata = { "login": "Login1", "ID": "id1" };
let template =
    `
 <table bgcolor="#FFFFGF">
        <tr>
            <th>Login</th>
            <th>id</th>    {{company}}        
        </tr>

        
            <tr>
         
                <td>{{login}}</td>
                 <td>{{ID}}</td>
               
            </tr>
        
    </table>
`
//console.log(gitdata);//

pm.visualizer.set(template, gitdata )

推荐阅读