【问题标题】:Object assign deep copying cause trouble对象分配深拷贝导致麻烦
【发布时间】:2017-01-26 04:39:33
【问题描述】:

我有一个对象数组,我在将其提交给控制器之前对其进行了转换。

要复制的Angular代码如下:

    sourceObjArray: SourceObject[] = [..];
    targetObjArray: SourceObject[]= [];
    targetObjArray = object.assign(sourceObjArray);
   // when i change target object it also cause source object to change
    transformSourceObject(targetObjArray)

以下似乎有效:

targetObjArray = object.assign({}, sourceObjArray);
// when i call transform it does not effect source object :)
transformSourceObject(targetObjArray)

但它会导致以下问题。

Could not read document: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token at [Source: java.io.PushbackInputStream@302753d0; line: 1, column: 1]; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token at [Source: java.io.PushbackInputStream@302753d0; line: 1, column: 1]

我的控制器方法签名是:

@RequestMapping(.., method=RequestMethod.POST)
public save(@RequestBody List<Object>, BindResult bindResult){}

【问题讨论】:

标签: angular typescript


【解决方案1】:

参考下面的帖子,发现下面的代码sn-p工作

How can i use angular.copy in angular 2

duplicateObject = <YourObjType> JSON.parse(JSON.stringify(originalObject));

【讨论】:

  • 那么您应该将此帖子标记为重复,而不是复制答案。这是 20k+ 用户的基本 SO 东西!
猜你喜欢
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 2012-06-19
  • 2019-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多