如题,使用过JSON.parse,但其反序列化出来后没法调用其方法。
也使用过深拷贝。但深拷贝遇到下面的TestAccessor 对象时,TestInfo里面的方法就没法调用了。
请问有其他方法在反序列化时,能保留这些方法信息吗?
export default class TestAccessor
{
public Idx:number=0;
public TestList:TestInfo[] = new Array();
}
如题,使用过JSON.parse,但其反序列化出来后没法调用其方法。
也使用过深拷贝。但深拷贝遇到下面的TestAccessor 对象时,TestInfo里面的方法就没法调用了。
请问有其他方法在反序列化时,能保留这些方法信息吗?
export default class TestAccessor
{
public Idx:number=0;
public TestList:TestInfo[] = new Array();
}
利用数据重新创建一次对象不就行了,为什么总想一步到位…
你是说手写每个字段的赋值吗?但字段有很多,有点太麻烦了
加个构造方法,new的时候传参赋值
或者使用for…in… 来遍历对象属性来赋值
很多方法的,不一定要手动对每个字段赋值…
但这样就是深拷贝吧。。对象数组时,就会丢失元素的方法了。。
你把数据序列化json之后,只会包含原对象的属性。所以,你反序列化得到的array里的object也只有属性。
而你想要的是序列化之前的包含原对象的一个array,这里没有你想要的这个原对象,所以才会叫你实例化一个原对象,不
管你是实例化时利用构造方法传参也好,还是实例化后利用objcet的对应属性来赋值也好,都能达到你最终想要的结果。
你还有啥想不通的,陷入思维误区了!?