javascript - 如何在 POST 请求中以逗号分隔的列表中的 "escape"逗号?

标签 javascript string rest post

编辑:API 开发人员通过使用另一个分隔符并在请求中指定它提供了一个解决方案(请参阅下面我对自己问题的回答)

<小时/>

我正在向 RESTful API 发送 POST 请求,这需要一个以逗号分隔的参数列表:

var request = require('request-promise'); //promisified npm request

// the list of names is huge
// those names are stored in a MongoDB database
// the namesList is generated programmatically before the request
var namesList = "name1,name2,name3,name4"

var requestOptions = {
  method: 'POST',
  uri: 'https://myAPI/someEndPoint/',
  body: {
    key: myAccessKey,
    names: namesList
  },
  json: true
};

request(requestOptions)
.then( () => {_do_something_} );

它适用于大多数名称,但其中一些包含逗号:

var arrayNames = ["foo bar", "barfoo", "stupid, comma", "dammit"];

// is converted by my code in :

var namesList = "foo bar,barfoo,stupid, comma, dammit";

这不可避免地会导致错误的列表被发送到 API...那么,当我从数组生成列表时,有没有办法以编程方式“转义”错误的逗号?

最佳答案

API 开发人员期待已久的答案已经到来(不久前发送了一封电子邮件),解决方案既简单又高效:只需使用另一个分隔符即可:

var namesList = "name1;name2;name3;name4" // use ';' instead of ',' here...

var requestOptions = {
  method: 'POST',
  uri: 'https://myAPI/someEndPoint/',
  body: {
    key: myAccessKey,
    names: namesList,
    delimiter: ';' // and specify the delimiter there !
  },
  json: true
};

request(requestOptions)
.then( () => {_do_something_} );

我不知道 delimiter 字段是标准的还是特定于该 API 的,但它非常适合我的用例!

关于javascript - 如何在 POST 请求中以逗号分隔的列表中的 "escape"逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38820697/

相关文章:

Java 正则表达式为每个对象分割 JSON 字符串

javascript - 按模型 ID 列表获取 Backbone 集合

java - REST 文件上传 - 分段或仅在输入流上发送内容

javascript - Angular 4 中 Promise 的实现错误

javascript - 如何使用javascript在html中制作粘性菜单栏

JavaScript 音序器 MIDI 文件时序分辨率 (PPQN)

java - 在 JBoss 7.5.0 上使用 REST 服务时,XML 文件处理不正确

javascript - 如何在 JavaScript 中动态创建的元素上设置属性

c# - 替换 JSON 中的转义字符

arrays - vhdl:将向量转换为字符串