是否可以将Javascript匿名对象转换为类型化对象?怎么样?

时间:2015-06-26 13:21:24

标签: javascript json mootools

我正在寻找一种方法将JavaScript匿名对象转换为类型化对象,...使用MooTools库(您可以手动创建它们或使用其他工具),我定义了几种类型,然后使用signalR(用于套接字编程的Microsoft库,你可以使用AJAX,或者某些对象或......等)我将对象从服务器发送到客户端,并且我可以访问该对象的任何部分,该对象完全看起来像我的类型期望它不包含原型......

当然我可以从最后一个对象的数据创建新的对象,但是它过度使用,也会抛出双重内存,还有CPU过载,......

我不确定是否有办法,但我确信,在这十年中有些像我这样的人,如果有可能做到这一点就需要它......

那么我如何将我的对象转换为已定义的对象?

在我的案例中也有一个难点...... 也就是说,我的模型它自己包含一个数组,我用其他模型(实体)实例填充它,...

1 个答案:

答案 0 :(得分:2)

您似乎对将Javascript对象序列化为JSON 必需这一事实感到困惑,这包括删除所有不可序列化的成员,包括函数和属性配置。

  

当然,我可以从最后一个对象的数据创建新的对象,但它是   过度使用,也会造成双重内存,CPU过载,......

服务器和客户端不能共享单个Javascript对象,因为它们是不同的物理机器。您可以在每台计算机的内存中拥有一个对象,但是您无法拥有两台计算机共享的对象。

这是涉及多台机器这一事实的基本限制。在机器之间传输数据时,您无法避免(de)序列化的需要。当你有"普通的旧物体" (de)序列化恰好是微不足道的,但仍然需要完成。

您可以做的是使序列化和反序列化过程更加轻松和健壮。我喜欢Javascript的一个原因是它提供了从JSON到开箱即用的无痛(de)序列化。使其健壮通常意味着编写模式以精确定义您期望序列化JSON具有的结构。虽然JSON没有单一的标准方法(与XML不同),但是有很多Javascript库提供了一种定义JSON模式和(de)使用这些模式序列化对象的方法。

  

在我的案例中也有一个难点......也就是说,我的模型本身包含一个数组,我用其他模型(实体)实例填充它,...

如果您的模式包含所有可能的模型/实体类型,那么正确的基于模式的序列化库可以轻松处理这些内容。