Json NodeJS请求没有';t对整个表单进行编码

Json NodeJS请求没有';t对整个表单进行编码,json,node.js,node-request,Json,Node.js,Node Request,任务相当简单,我使用POST请求(https://banana.com/endpoint/swap.php),把我的表格给它:{香蕉:[“中国的红色”,“瑞典的灰色],苹果:[]},然后寄出去。 但是,我正在使用的NodeJS请求模块不会对空数组(在本例中为“apples”)进行编码,如果端点没有接收到“apples”数组,它将返回一个错误——“Invalid JSON”。我试着用已经编码的字符串来做这件事,效果很好。我也无法对我的json进行字符串化,然后使用encodeURI(),因为它会在

任务相当简单,我使用POST请求(
https://banana.com/endpoint/swap.php
),把我的表格给它:
{香蕉:[“中国的红色”,“瑞典的灰色],苹果:[]}
,然后寄出去。 但是,我正在使用的NodeJS请求模块不会对空数组(在本例中为“apples”)进行编码,如果端点没有接收到“apples”数组,它将返回一个错误——“Invalid JSON”。我试着用已经编码的字符串来做这件事,效果很好。我也无法对我的json进行字符串化,然后使用
encodeURI()
,因为它会在它们周围加上“香蕉”和“苹果”的引号,这将被编码——不用说,端点也不喜欢这样

如果有人能至少为我指出正确的方向,我将不胜感激。因为我不确定如何继续进行,而不创建一些糟糕的意大利面代码

data = { banana: ["China's Red", "Sweden's Gray"], apples: [] }   
result = JSON.parse(JSON.stringify(data))  .
你不会得到香蕉和苹果,如果你需要访问然后访问它

console.log(result.banana)
console.log(result.apple)
因此,如果您需要在post请求中提供此结果,则-

url = 'your url';
const options = {
  url: url,
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Accept-Charset': 'utf-8'
  },
  json: result
};
request.post(options, function (err, response, body) {
// do something with your data
})

让我知道这是否有效。

只是指出,您可能需要一个逗号apples@hairmot抱歉,这只是post:ptry中的一个输入错误,无法将空字符串添加到apples数组===>apples:[“”]@WejdDAGHFOUS刚刚尝试了它,不幸的是它不起作用。我猜它会检查所有提供的值是否真实存在。