Как сериализовать объекты Ember?

мне нужно использовать localStorage для хранения некоторых объектов Ember. Я заметил, что объекты Ember имеют свойства с именами вроде __ember1334992182483. Когда я вызываю JSON.stringify()для объектов Ember, эти свойства __ember*не сериализуются. Почему это? Я не говорю, что хочу сериализовать эти свойства. Мне просто любопытно, что именно они собой представляют и как они реализованы, чтобы они не были сериализованы.

Я использую cycle.js(https://github.com/douglascrockford/JSON-js/blob/master/cycle.js)для кодирования своих структур данных, содержащих повторяющиеся ссылки, в строку, которую можно использовать для восстановления исходных структур данных. Это позволяет вам сделать это:

a = {a:1}
b = {b:1}
c = [[a, b], [b, a]]

foo = JSON.stringify(JSON.decycle(c))  // "[[{'a':1},{'b':1}],[{'$ref':'$[0][1]'},{'$ref':'$[0][0]'}]]"
JSON.retrocycle(JSON.parse(foo))  // reconstruct c

Для объектов Ember я могу сделать то же самое, но мне также нужно передать десериализованные объекты в Ember.Object.create(), потому что они десериализованы как простые объекты JavaScript.

Является ли это лучшим способом сериализации/десериализации объектов Ember? Есть ли рекомендуемая техника для этого?

6
задан hekevintran 21 April 2012 в 07:30
поделиться