骨干js,JSON字符串未正确存储

时间:2014-04-20 14:36:34

标签: javascript json backbone.js

以下是完整的代码:

var picTempJSON = JSON.stringify(pictures);

//code to update model

usersCollection.fetch({

  success : function() {

    var getModel = usersCollection.where(checkFBAccountIdJSON);

      //console.log(PersonJson);

    for (var i in getModel) {

      getModel[i].set('pictures', picTempJSON);

      getModel[i].save();

    }

    console.log(usersCollection.toJSON());

  },

  error : function() {
      // something is wrong..
  }

}); 

输入字符串:

["xxxx.jpg","xxxx.jpg","xxxxx.jpg"]

输出字符串:

pictures = "[\"xxxx.jpg\",\"xxxx_n.jpg\",\"xxxxx.jpg\"]";

我遇到的问题是输入字符串不反映输出字符串(或存储在模型中的字符串),当我必须将字符串恢复为JSON对象时,这将导致后续问题,因为它是由于反斜杠而无效的JSON

1 个答案:

答案 0 :(得分:0)

如果你真的必须将它作为字符串存储在模型中,你可以调用

var pictures = JSON.parse(model.get('pictures'));

获取数据或重写模型的toJSON方法并在其中调用JSON.parse(...),因此在迭代收集时,每个模型都会准备好所有内容

var AnyModel = Backbone.Model.extend({
  //...
  toJSON: function() {
    return {
       //...
       'pictures': JSON.parse(this.get('pictures'))
       //...
    }
  }
  //...
});