将首先转换为 Observable 的 json 文件转换为打字稿中的地图,角度

Posted

技术标签:

【中文标题】将首先转换为 Observable 的 json 文件转换为打字稿中的地图,角度【英文标题】:Converting a json file which has first been converted to an Observable, to a map in typescript, in angular 【发布时间】:2018-12-12 21:40:29 【问题描述】:

我有一个 json 文件 - dummy,它看起来像这样 -

[
    "key":"KEY1", "value":["alpha","beta","gamma"],

    "key":"KEY2", "value":["A","B","C"],

    "key":"KEY3", "value":["One","Foo","Bar"]
]

我想将此 json 文件转换为与 json 文件中给出的键值对相同​​的映射。

为了实现这一点,我首先创建了一个 observable - myObservable,然后在 component.ts 文件中做了类似的事情 -

myMap: any = ;
myObservable: Observable<any> = Observable.of(this.dummy);

getObservable() 
    return this.myObservable;


ngOnInit() 
    this.getObservable()
    .subscribe(myResponse => 
        this.myMap = new Map(myResponse); //Converting myresponse to map here.
    ).

但是这个类比不起作用。如何将此可观察文件转换为打字稿中的地图?

预期输出:


    Key1,[alpha,beta,gamma]
    Key2,[A,B,C]
    Key3,[One,Foo,Bar]

【问题讨论】:

欢迎来到 ***!请发布有关您遇到的错误的更多详细信息(例如通过粘贴错误消息),因为这样会更容易为您提供帮助。干杯:) 请提供您的预期输出 我已经添加了预期的输出 我想将 myResponse 变量转换为地图 我相信你需要做类似.subscribe( res =&gt; let myResponse = res.json(); ) 【参考方案1】:

const dummy = [

     "key":"KEY1", "value":["alpha","beta","gamma"],

     "key":"KEY2", "value":["A","B","C"],

     "key":"KEY3", "value":["One","Foo","Bar"]
 ]
 
 const result = new Map();
 
 dummy.map(item => 

 result.set(item["key"], item["value"]);
 )
 
for (var [key, value] of result.entries()) 
  console.log(key + ' = ' + value);

【讨论】:

以上是关于将首先转换为 Observable 的 json 文件转换为打字稿中的地图,角度的主要内容,如果未能解决你的问题,请参考以下文章

Typescript / Angular2:将 JSON 转换为与 Observable 和 JSONP 接口

将 JSON 对象数组转换为 Observable<string[]>

如何将 Observable 转换为 ReplaySubject?

使用 Knockout Observable 数组

将Observable的Observable转换为简单的Observable

Angular:Typescript 将 JSON 响应转换为对象模型不起作用