Javascript Vue-将JSON对象转换为具有特定布局的字符串
我有一个动态设置的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), }); } }
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"}]}"