Javascript 将具有字符串索引表示法的对象属性转换为点表示法
这个我有点挠头。我有一个网址如下Javascript 将具有字符串索引表示法的对象属性转换为点表示法,javascript,angularjs,query-string,Javascript,Angularjs,Query String,这个我有点挠头。我有一个网址如下 http://localhost:50303/Directory?SearchUnits=km&Postcode=NG1%202AD&&Position[south]=53.9480673197085&Position[west]=-1.1444808302915135&Position[north]=52.9507652802915&Position[east]=-1.1417828697085497 当我像这
http://localhost:50303/Directory?SearchUnits=km&Postcode=NG1%202AD&&Position[south]=53.9480673197085&Position[west]=-1.1444808302915135&Position[north]=52.9507652802915&Position[east]=-1.1417828697085497
当我像这样使用angularjs获取查询参数时
var qs = $location.search();
我得到一个像这样的物体
{
SearchUnits: "km",
Postcode: "NG1 2AD",
"Position[south]": "53.9480673197085",
"Position[west]": "-1.1444808302915135",
"Position[north]": "52.9507652802915",
"Position[east]": "-1.1417828697085497"
}
{
SearchUnits: "km",
Postcode: "NG1 2AD",
Position: {
south: "53.9480673197085",
west: "-1.1444808302915135",
north: "52.9507652802915",
east: "-1.1417828697085497"
}
}
但是我需要它看起来像这样
{
SearchUnits: "km",
Postcode: "NG1 2AD",
"Position[south]": "53.9480673197085",
"Position[west]": "-1.1444808302915135",
"Position[north]": "52.9507652802915",
"Position[east]": "-1.1417828697085497"
}
{
SearchUnits: "km",
Postcode: "NG1 2AD",
Position: {
south: "53.9480673197085",
west: "-1.1444808302915135",
north: "52.9507652802915",
east: "-1.1417828697085497"
}
}
我如何解析它?我尝试过串接然后解析,但这不起作用,如果键值是静态的,那么转换它就很容易了,只需迭代一个数组['code>,'south','west','north','east']并根据需要检索值/分配/删除:
const obj={
搜索单位:“公里”,
邮政编码:"NG1 2AD",,
“位置[南]”:“53.9480673197085”,
“位置[西]”:“-1.14448080302915135”,
“位置[北]”:“52.9507652802915”,
“位置[东]”:“-1.1417828697085497”
};
常量位置={};
对象位置=位置;
['south'、'west'、'north'、'east'].forEach((键)=>{
const inputKey=`Position[${key}]`;
位置[键]=对象[输入键];
删除obj[inputKey];
});
控制台日志(obj)代码>您不能使用url执行此操作。使用post代替传递数据谢谢,这是我试图避免的。不管怎样,字段是静态的,所以它可以工作。