Nik*_*tak 4 export-to-csv servicenow servicenow-rest-api
这是一个 REST API,我正在尝试将数据下载为 CSV 文件。
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var data = '\n'; // workaround to separate <xml> start tag on first line
data += 'Firstname,Lastname,Username' + '\n';
data += 'Nikhil,vartak,niksofteng' + '\n';
data += 'Unknown,person,anonymous' + '\n';
response.setHeader("Content-Disposition", "attachment;filename=Xyz.csv");
response.setContentType("text/csv");
response.setBody({'data':data});
})(request, response);
Run Code Online (Sandbox Code Playgroud)
根据文档 setBody需要一个 JS 对象,因此如果我只是传递data变量,我会收到错误,指出数据无法解析为ScriptableObject.
因此,使用当前代码我得到以下响应:
{
"result": {
"data": "\nFirstname,Lastname,Username\nNikhil,vartak,niksofteng\nUnknown,person,anonymous\n"
}
}
Run Code Online (Sandbox Code Playgroud)
生成的 CSV 如下所示:
知道如何去掉第一行和第五行的 XML 标记吗?
小智 5
setBody 方法需要一个 Javascript 对象,然后根据客户端通过 Accept 标头指示的操作将其序列化为 JSON 或 XML。
在您的情况下,您想要生成自己的序列化格式:CSV。因此,不要使用 setBody 方法,而是使用流编写器接口直接写入响应流。
response.setContentType("text/csv");
response.setStatus(200);
var writer = response.getStreamWriter();
writer.write('Firstname,Lastname,Username\n');
writer.write('Nikhil,vartak,niksofteng\n');
Run Code Online (Sandbox Code Playgroud)
ETC。
请注意,您必须自己处理 CSV 格式的所有详细信息,包括正确编码任何特殊字符,例如您希望字段包含“Nik,hil”等逗号。
干杯,
塞拉斯
| 归档时间: |
|
| 查看次数: |
31389 次 |
| 最近记录: |