如何在angular 6中解析JSON
我有一个json,如下所示如何在angular 6中解析JSON,angular,angular6,Angular,Angular6,我有一个json,如下所示 private _ELEMENT_DATA: Account[] = [ {"id":{"name":"abc", "value":"123"}}, {"id":{"name":"abc", "value":"123"}}, {"id":{"name":"abc", "value":"123"}} ] 请帮助我如何解析Angular 6 export class Account{ name: string; value: string; }
private _ELEMENT_DATA: Account[] = [
{"id":{"name":"abc", "value":"123"}},
{"id":{"name":"abc", "value":"123"}},
{"id":{"name":"abc", "value":"123"}}
]
请帮助我如何解析Angular 6
export class Account{
name: string;
value: string;
}
我的服务课是这样的
getAllAccouts(): Observable<any[]> {
// return this.httpClient.get<Account[]>(this.ELEMENT_DATA);
return of<Account[]>(this._ELEMENT_DATA);
}
getAllAccouts():可观察{
//返回this.httpClient.get(this.ELEMENT_数据);
返回(此._元素_数据);
}
JSON将无法解析到类中
您需要这样一个类:
export class AccountContainer {
id: Account;
}
并将您的服务代码更改为以下内容:
getAllAccouts(): Observable<AccountContainer[]> {
return of<AccountContainer[]>(this._ELEMENT_DATA);
}
getAllAccouts():可观察{
返回(此._元素_数据);
}
如果您要查找与您的类帐户匹配的结果,首先,您的“json”(实际上是一个JS数组)不能具有类型帐户[]
,因此必须是包含帐户对象的模型。这里我借用了杰米的模型:
导出接口AccountContainer{
id:账户;
}
导出接口帐户{
名称:字符串;
值:字符串;
}
私有_元素_数据:AccountContainer[]=[
{“id”:{“name”:“abc”,“value”:“123”},
{“id”:{“name”:“abc”,“value”:“123”},
{“id”:{“name”:“abc”,“value”:“123”}
]
此外,由于您的类没有构造函数或方法,所以一个接口就足够了。因此,要获得您想要的结果,请执行以下操作:
从'rxjs/operators'导入{map};
// ....
getAllAccouts():可观察{
返回(此._元素_数据)。管道(
map(x=>x.map(y=>{name:y.id.name,value:y.id.value}))
)
}
这样,您就得到了一个与Account
接口匹配的对象数组。您需要一个外部类,export-class-outer{id:Account}
,然后将Account[]
的每个引用都更改为outer[]
或任何您想命名新类的名称,除非新帐户
发生在从未使用帐户类的地方,否则您应该使用接口来强类型对象文本。本例中也没有JSON,只有javascript。我需要的是名称和值,而不是帐户对象。@sree1611您的问题是如何解析JSON。我已经给了你一个如何解析它的例子。然后通过执行accountContainer.id
访问account对象GetAllAccounts()结果的元素将不是accountContainer
的res[0]实例,应该使用接口accountContainer
和接口account
。太好了!很高兴听到它适合你!:)如果它帮助了你,考虑通过点击这个答案的投票下的灰色记号来接受答案: