我目前正从服务器获取JSON响应,如下所示:
{
"id" : 1,
"number" : "123456",
"name" : "Some Name",
"client" {
"com.test.domain.Client" : 5
}
}
我需要回答如下:
{
"id" : 1,
"number" : "123456",
"name" : "Some Name",
"client" {
"id" : 5
}
}
我想要挂钩Backbone所做的所有AJAX响应,并将所有匹配^com.test.domain.*$
的密钥替换为id
。有谁知道我怎么能这样做?
答案 0 :(得分:1)
您可以通过覆盖模型中接收此响应的解析方法来实现。
例如:
var SampleModel = Backbone.Model.extend({
....
parse: function(serverResponse){
var serverResponseString = JSON.stringify(serverResponse);
var modifiedResponseString = serverResponseString.replace("com.test.domain.Client","id");
return JSON.parse(modifiedResponseString);
},
....
});
当您从模型的实例中获取或保存时,它们将通过此解析方法。所以你可以修改它以返回你想要的值。
答案 1 :(得分:0)
在模型中定义parse
函数,将收到的JSON更改为您想要的。请参阅http://backbonejs.org/#Model-parse和http://backbonefu.com/2011/11/working-with-api-responses-in-backbone-js-using-parse/