我有一个JSON响应可观察如下。我想从两个单独的数组中获取这个observable的数据,如[abc,xyz]和[aa,bb]。是否可以使用rx observables map和switchmap在同一个observable中获取两个数组。
this.data$ = Observable.of({
"data": [
{
"firstname": "abc",
"lastname": "aa"
},
{
"firstname": "xyz",
"lastname": "bb"
}
]
}) .map(res => res.data)
.switchMap(dataArray => {
return Observable.from(dataArray);
})
.map((arrayResp: any) => {
return ( arrayResp.firstname);
}).toArray()
这里我只能得到一个阵列。是否可以在此方法中获得两个数组。
答案 0 :(得分:0)
您可以简单地使用数组映射函数:
private int hoveredRow = -1, hoveredColumn = -1;
table.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(MouseEvent e) {
Point p = e.getPoint();
hoveredRow = table.rowAtPoint(p);
hoveredColumn = table.columnAtPoint(p);
table.setRowSelectionInterval(hoveredRow, hoveredRow);
table.repaint();
}
@Override
public void mouseDragged(MouseEvent e) {
hoveredRow = hoveredColumn = -1;
table.repaint();
}
});
答案 1 :(得分:0)
你有json字符串,所以你需要在你的switchMap
方法
.switchMap(dataArray => {
return Observable.from(JSON.parse( dataArray));
})
或者你也可以这样做
this.data$ = Observable.of(JSON.parse(`{
"data": [
{
"firstname": "abc",
"lastname": "aa"
},
{
"firstname": "xyz",
"lastname": "bb"
}
]
}`).subscribe(res=> console.log(res.data));