保存模型时,Backbone 1.2发出的Json无效

Invalid Json Emiited by Backbone 1.2 while saving model?

本文关键字:Json 无效 2发 模型 Backbone 保存      更新时间:2023-09-26

我是骨干网的新手,我一直在尝试将我的模型保存到json文件中。

它工作得很好,直到我尝试读取主干应用程序发出的json,使用Jsonlint时我发现我的json无效。以下是一些详细信息:

我的型号(index.htm)

     //--------------
    // Model
    //--------------
    app.Todo = Backbone.Model.extend({
      defaults: {
        prenom:'',
        nom:'',
        adresse:'',
        profession:'',
        mail:'',
        cin:'',
        tel:''
  },

我的保存功能

   createTodoOnEnter: function(e){
    app.todoList.create(this.newAttributes());
    // clean input box
          prenom: this.prenom.val('');
          nom: this.nom.val('');
          adresse: this.adresse.val('');
          profession: this.profession.val('');
          mail: this.mail.val('');
          cin: this.cin.val('');
          tel: this.tel.val('');
  },
 newAttributes: function(){

    return {
      prenom: this.prenom.val().trim(),
      nom: this.nom.val().trim(),
      adresse: this.adresse.val().trim(),
      profession: this.profession.val().trim(),
      mail: this.mail.val().trim(),
      cin: this.cin.val().trim(),
      tel: this.tel.val().trim()
    }
  }

我在保存时得到的json:

    {
    prenom: "ramy",
    nom: "dabbabi",
    adresse: "50 rue Fadhel ben achour",
    profession: "Developpeur",
    mail: "ramy@gmai.com",
    cin: 09008585,
    tel: 789456123
}

您可以注意到,属性(prenom,nom…)上没有双引号,这就是我的json无效的原因。

我该怎么解决?主干网中有没有允许我定义json格式的功能?

我可以格式化this.model.create函数发送的json吗?

我猜您正在调用toJSON方法,如果您查看文档,您会发现它实际上并没有返回JSON字符串

返回JSON的模型属性的浅层副本字符串化。这可以用于持久性、序列化或以便在发送到服务器之前进行扩充。此的名称方法有点令人困惑,因为它实际上并没有返回JSON字符串-但我担心这是JavaScript APIJSON.stringify有效。

当然,您可以字符串调用JSON.stringify (model.toJSON()) 的结果

此外,如果需要,您可以始终覆盖主干方法本身。