0

我正在运行一些 rails 代码来生成 json 供骨干网使用。当我将 id 视为字符串并在主干中使用它时,toJSON() 函数不会返回属性。当我在 id 上调用 to_i 时, toJSON() 可以正常工作。(但这会破坏我的应用程序,因为“012345”与 12345 不同。

我的骨干观点:

  serialize: ->
      console.log @model.toJSON()
      info: @model.toJSON().info

非工作 json 响应:

{"id":"123456","info":[{"label":"Hire Date","text":"06-NOV-00"},{"label":"User ID","text":"YADDA"},{"label":"Employee Number","text":"123456"}] }

非工作 toJSON 结果:

data_partition: DataPartition
id: "123456"
__proto__: Object

工作的json:

{"id":123456,"info":[{"label":"Hire Date","text":"06-NOV-00"},{"label":"User ID","text":"YADDA"},{"label":"Employee Number","text":123456}] }

工作到JSON():

data_partition: DataPartition
id: 123456
info: Array[3]
__proto__: Object

但是,当我切断前导 0 时,这会破坏我的 Rails 应用程序。

4

1 回答 1

0

运行此代码我没有发现任何问题:

var responseJSON_1 = {"id":"123456","info":[{"label":"Hire Date","text":"06-NOV-00"},{"label":"User ID","text":"YADDA"},{"label":"Employee Number","text":"123456"}] };
var responseJSON_2 = {"id":123456,"info":[{"label":"Hire Date","text":"06-NOV-00"},{"label":"User ID","text":"YADDA"},{"label":"Employee Number","text":"123456"}] };

var MyModel = Backbone.Model.extend({});
var myModel_1 = new MyModel( responseJSON_1 );
var myModel_2 = new MyModel( responseJSON_2 );

console.log( myModel_1.toJSON() );
console.log( myModel_2.toJSON() );​

检查工作的 jsFiddle

你确定你在回复中没有改变比id格式更多的东西吗?

于 2012-08-17T09:02:03.410 回答