寻找一种干净的方法将包含数组的javascript对象转换为与搜索参数兼容的查询字符串的值。在移至下一个索引之前,先序列化每个数组中的元素。
使用查询字符串或qs之类的库可以很好地转换对象,但是可以独立处理每个数组。将结果字符串传递到服务器(我无法更改)会导致项目处理错误,因为每个先前的值都将被下一个覆盖。不支持在查询字符串中使用任何类型的数组符号。我没有尝试过的唯一选项是自定义排序函数,但似乎比编写自定义函数来解析对象要糟糕。也欢迎对该对象进行任何修改以产生预期的结果。
var qs = require("qs")
var jsobj = {
origString:['abc','123'],
newString:['abcd','1234'],
action:'compare'
}
qs.stringify(jsobj,{encode:false})
qs.stringify(jsobj,{encode:false,indices:false})
qs.stringify(jsobj,{encode:false,indices:false,arrayFormat:'repeat'})
返回的结果是
"origString=abc&origString=123&newString=abcd&newString=1234&action=compare"
所需的结果将是
"origString=abc&newString=abcd&origString=123&newString=1234&action=compare"
答案 0 :(得分:0)
我尝试对您的json重新排序:
to_csv
但是我不知道这是否可以解决您的问题。
答案 1 :(得分:0)
将其解释为对应用程序的误解。在花了更多时间使用API之后,我意识到了我的错误,正如其他人在上面发布的,顺序无关紧要。不知道为什么我的前几次尝试都失败了,但问题已被“回答”