【问题标题】:Convert Text Response into JSON array (Postman)将文本响应转换为 JSON 数组(邮递员)
【发布时间】:2022-01-18 03:58:30
【问题描述】:

我正在尝试将我在 POSTMAN 中获得的文本响应转换为 JSON 数组并寻求任何帮助。现在,我可以使用 .split() 从文本响应创建变量,如下所示:

回复:

1. 1c522d76-5d20-11ec-bf63-0242ac130002↵
2. 1c522fc4-5d20-11ec-bf63-0242ac130002↵
3. 1c5230d2-5d20-11ec-bf63-0242ac130002↵
4. 1c5231c2-5d20-11ec-bf63-0242ac130002↵
5. 1c5232a8-5d20-11ec-bf63-0242ac130002↵

通过拆分文本响应设置集合变量(每个 UUID 都是一个变量)

pm.collectionVariables.set("UUID_1", res.text().split("\r\n")[0])   
pm.collectionVariables.set("UUID_2", res.text().split("\r\n")[1])
pm.collectionVariables.set("UUID_3", res.text().split("\r\n")[2])
pm.collectionVariables.set("UUID_4", res.text().split("\r\n")[3])
pm.collectionVariables.set("UUID_5", res.text().split("\r\n")[4])

但是,与其以这种方式创建变量,我认为更好的办法是将文本响应转换为 JSON 数组。这样我就可以朝着循环 API 请求的目标努力,直到 JSON 数组完成。

到目前为止,我有这个:通过字符串化设置一个环境变量,这几乎是在创建一个字符串,但我认为它将整个文本响应字符串化为一个字符串。

let body = pm.response.text()
pm.environment.set('text2json', JSON.stringify(body));
console.log(body)

你会注意到它是如何用双引号括起来的:

""1c522d76-5d20-11ec-bf63-0242ac130002\r\n1c522fc4-5d20-11ec-bf63-0242ac130002\r\n1c5230d2-5d20-11ec-bf63-0242ac130002\r\n1c5231c2-5d20-11ec-bf63-0242ac130002\r\n1c5232a8-5d20-11ec-bf63-0242ac130002""

不幸的是,如果我尝试获取 Env 变量并像这样在控制台记录它:

console.log(pm.environment.get("text2json"))

错误:

JSONError: Unexpected token 'c' at 1:21c522d76-5d20-11ec-bf63-0242ac130002

正在寻找一种方法来完成这项工作并将其放入 JSON 数组中。

【问题讨论】:

  • 好吧,您不能将直接文本转换为 JSON。我很惊讶JSON.stringify 还没有扔。您可以执行JSON.stringify(res.text().split("\n")) 之类的操作。那应该行得通。另外,你是在服务器端还是客户端?如果使用 fetch,则只能调用一次res.text()

标签: javascript json text postman converters


【解决方案1】:

split 之后只需JSON.stringify,就可以解决您的问题。

let body = pm.response.text()
pm.environment.set('text2json', JSON.stringify(body.split("\r\n")));
console.log(body)

【讨论】:

    【解决方案2】:
    let response = pm.response.text().split('\n'), jsonObject = {}
    response.forEach((item,index)=>{
        jsonObject[`uuid_${index}`] = item
    })
    
    console.log(jsonObject)
    pm.environment.set('text2json',jsonObject)
    

    只需将其添加到数组中并遍历每个元素并将其添加到对象中

    【讨论】:

      猜你喜欢
      • 2019-07-27
      • 2020-02-11
      • 2022-06-13
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 2022-06-15
      相关资源
      最近更新 更多