如何在angular 6中解析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; }

我有一个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;
}
我的服务课是这样的

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
。太好了!很高兴听到它适合你!:)如果它帮助了你,考虑通过点击这个答案的投票下的灰色记号来接受答案: