将首先转换为 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 => 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?