什么是在角度2打字稿中将JSON强制转换为通用Object []的最佳方法?

时间:2016-08-01 21:50:55

标签: angularjs json angular angular2-http

不确定这是否按预期工作,但我想将一个json的blob转换为通用对象数组(这些对象具有可塑性,可以根据我的URL进行更改)。我应该使用JSON.parse(res.json()。data)吗?谢谢。

 return this.http.get(URL)
                       .toPromise()
                       .then(response => response.json().data as Object[]) 
                       .catch(this.handleError);
          }

1 个答案:

答案 0 :(得分:0)

您的解决方案的问题是Object类型没有任何成员(通常除外),因此任何尝试从您的JSON(例如id等)访问特定属性都会创建错误。

正确的方法是as any[]

  return this.http.get(URL)
                        .toPromise()
                        .then(response => response.json().data as any[]) 
                        .catch(this.handleError);
           }

这将允许您访问JSON响应中的所有内容(以及JSON响应中没有的所有内容。您在运行时会收到错误。)

最好将结果转换为特定类型,请参阅How do I cast a JSON object to a typescript class