Javascript Vue-将JSON对象转换为具有特定布局的字符串

Javascript Vue-将JSON对象转换为具有特定布局的字符串,javascript,php,json,laravel,vue.js,Javascript,Php,Json,Laravel,Vue.js,我有一个动态设置的JSON对象。下面是设置列的方法onDragStop: data() { return { columns: [], } }, methods: { onDragStop: function (index) { this.$set(this.columns, index, { xAxis: this.left, position: ((this.left/SomeWidth) * 100), }); } }

我有一个动态设置的JSON对象。下面是设置列的方法
onDragStop

data() {
 return {
   columns: [],
 }
},

methods: {
   onDragStop: function (index) {
    this.$set(this.columns, index, {
        xAxis: this.left,
        position: ((this.left/SomeWidth) * 100),
    });
 }

}
例如,上面将创建一个JSON对象,如下所示(2列):

现在,我需要将此JSON对象传递到后端PHP文件,该文件需要如下布局:

"{"1": {"position": "30"}, "2": {"position": "60"}}"
PHP文件只是对JSON进行编码:

$columns = json_encode($request->columns);
现在,我尝试通过以下方法将JSON字符串转换为所需的输出:

UpdateColumns: function (columns) {
    this.columns = JSON.stringify(columns)
}
但是,上面将其转换为:

"{"columns":[{"xAxis":340,"position":"30.98"},{"xAxis":658.584375,"position":"60"}]}"
我想知道,是否有可能将JSON对象转换为我想要的输出?这应该在Vue文件中完成,还是应该在后端PHP文件中处理?

尝试以下方法:

const data=[{“xAxis”:329.2921875,“位置”:“30”},{“xAxis”:658.584375,“位置”:“60”}];
const result=data.map(res=>({position:res.position}))
.reduce((map,obj,i)=>(map[i]=obj,map),{})
控制台日志(结果)请尝试以下操作:

const data=[{“xAxis”:329.2921875,“位置”:“30”},{“xAxis”:658.584375,“位置”:“60”}];
const result=data.map(res=>({position:res.position}))
.reduce((map,obj,i)=>(map[i]=obj,map),{})

控制台日志(结果)好答案。。。怎么样
.reduce((map,obj,i)=>(map[i+1]=obj,map),{})
保持OP想要的方式?不管怎样,这个答案很好。很好的答案。。。怎么样
.reduce((map,obj,i)=>(map[i+1]=obj,map),{})
保持OP想要的方式?不管怎样,这个答案都是好的。
"{"columns":[{"xAxis":340,"position":"30.98"},{"xAxis":658.584375,"position":"60"}]}"