在我的REST应用程序中,我使用angularjs 2中的类型记录语言,问题是- typescript给出了编译时错误的
[ts] Property 'name' does not exist on type 'JSON'.any
当我尝试访问传入的JSON对象时,我的函数代码如下
createPerformanceChart(data: JSON) {
// Show Up the Fund Details Data
var details: any;
for(var j = 0 ; j < Object.keys(this.funds).length; j++)
{
if(data.name == this.funds[j].name) // data.name throws Error
{
details = this.funds[j];
}
}
}如何转换JSON或访问JSON对象--这样它就不会抛出编译时错误并让我编译代码。
发布于 2016-06-09 11:58:49
如果您想创建强类型
您必须使用接口将响应类型(JSON)更改为更具体的内容:
interface IPerformanceData {
name: string;
}然后将其用作传入响应的类型:
createPerformanceChart(data: IPerformanceData) {
// you can now use: data.name
}如果你不在乎
只需将其作为一种any:
createPerformanceChart(data: any) {
// you can now use any property: data.*
}发布于 2016-06-09 11:48:25
您可以通过以下方法检查JSON数据中是否存在该名称字段
createPerformanceChart(data: JSON) {
// Show Up the Fund Details Data
var details: any;
for(var j = 0 ; j < Object.keys(this.funds).length; j++)
{
if(data.name == this.funds[j].name && data.name) <-- check if data.name is present
{
details = this.funds[j];
}
}https://stackoverflow.com/questions/37725075
复制相似问题