【问题标题】:How to correctly output json as object如何正确输出 json 作为对象
【发布时间】:2021-08-18 17:21:39
【问题描述】:

我有一个 vuew 应用程序,它生成一个数组,我想将它发送到我的 Spring Boot 应用程序以保存到数据库。 用例是这样的。用户可以根据需要添加任意数量的 Times 对象,包括:Date、start 和 endtime。

但是json输出是这样的:

[
   {
      "meetingName":"",
      "meetingTime":[
         [
            {
               "date":"2021-05-31",
               "startTime":"15:30",
               "endTime":"16:30"
            },
         ],
         [
            {
               "date":"2021-06-22",
               "startTime":"15:30",
               "endTime":"16:30"
            },
             
            {
               "date":"2021-06-22",
               "startTime":"15:30",
               "endTime":"16:30"
            },

         ]
      ]
   }
]

但我想要实现的是这样的输出:

 {
      "meetingName":"",
      "meetingTime":[
         
            {
               "date":"2021-05-31",
               "startTime":"15:30",
               "endTime":"16:30"
            },
            {
               "date":"2021-05-31",
               "startTime":"17:30",
               "endTime":"18:30"
            },
          {
               "date":"2021-06-22",
               "startTime":"15:30",
               "endTime":"16:30"
            },
         ]
      
   }

这就是我生成数组的方式:

<script>
import DatePickerComponent from "@/components/DatePickerComponent";

export default {
  name: "GenerateMeetingSettings",

  data: () => ({
    selectedTime: [],
    finalMeeting: [],
    datesFinal: [{meetingName: "", meetingPw:"",
      meetingTime: []}] ,
    dates: new Date().toISOString().substr(0,10),
    meetingSettingUrl: "",
    meetingPW: "",     
  })
,

  methods:{

    addTimeFields(){
      this.selectedTime.push({
        date: this.dates,
        startTime:"",
        endTime: "",
      })
    },
    saveDateAndTIme(e) {
        this.datesFinal[0].meetingTime.push(this.selectedTime),

          this.selectedTime = []


    },

有人可以看看我的代码并指出我的错误是什么吗?

【问题讨论】:

    标签: javascript json typescript vue.js vuetify.js


    【解决方案1】:

    Rplace 这个:

    this.datesFinal[0].meetingTime.push(this.selectedTime)
    

    用这个:

    this.datesFinal[0].meetingTime = [...this.datesFinal[0].meetingTime, ...this.selectedTime]
    

    【讨论】:

    • 效果太棒了,你能解释一下你的代码和我的推送方法之间的区别吗?
    • 确定 selectedTime 是一个数组,并且您正在将数组推入另一个数组。但您真正想要的是将两个数组(selectedTime、meetingTime)合并到一个平面数组中。如果您不熟悉传播运算符,您也可以使用它:[].concat(selectedTime, meetingTime)
    • 感谢您的精彩解释。但是一个问题。是否可以删除像第一个示例中那样采用整个 json 的外部 []?
    • 是的,做这些改变: datesFinal: { {meetingName: "", meetingPw:"", meetingTime: []} } (内部数据) 然后 -> this.datesFinal.meetingTime = [... this.datesFinal.meetingTime, ...this.selectedTime]
    • 刚刚注意到,如果您按照在外部使用 {} 所做的操作,它会起作用。也许你有错字?
    猜你喜欢
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多