簡體   English   中英

如何在 Angular2 應用程序中匹配雙簧管節點事件中的每個新行分隔的 json 對象?

[英]How to match each new line delimited json object in oboe's node-event in Angular2 app?

我有返回這樣的數據的API:

{"t":"point","id":817315,"tableid":141,"classid":142,"state":0,"loc":[6850735.34375,24501674.0039063]}
{"t":"line","id":817314,"tableid":204,"classid":2102,"loc":[[6850335.8828125,24501476.50390625],[6850341.48828125,24501476.8828125],[6850362.171875,24501492.21484375],[6850387.4140625,24501508.86328125],[6850442.66796875,24501545.69921875],[6850502.34375,24501584.0078125],[6850558.3359375,24501619.37109375],[6850611.375,24501654.73046875],[6850671.05078125,24501693.04296875],[6850708.62109375,24501687.1484375],[6850735.34375,24501674.00390625]]}

用這樣的代碼:

    oboe('http://localhost:19100/pn/api/v1/fetch?cgid=22&north=6853000.0&east=24505000&south=6850000.0&west=24500000.0')
    .node('*', (row) => {
        console.log(row);

        return oboe.drop;
    })
    .done(() => {

        return oboe.drop;
    })
    .fail((err) => {
        // error
        console.log('oboe fail ', err);
        return oboe.drop;
    });

我們不是針對每一行而是針對每個單獨的值來進行節點回調。 即行的值是第 1 次“點”,第 2 次 817315,第 3 次 141 等等。

我的目標是在每一行都有一個 json 對象被讀入一個對象。

我問了類似的問題,但因為第一個問題是 api 服務 CORS 問題,所以它變成了 CORS 問題,我據此重新命名。

此服務器響應是一種不好的做法。 由於您的 API 在 localhost 上運行,我相信您可以更改此響應。 請讓您的 API 響應 JSON 數組。

[
{"t":"point","id":817315,"tableid":141,"classid":142,"state":0,"loc":[6850735.34375,24501674.0039063]},
{"t":"line","id":817314,"tableid":204,"classid":2102,"loc":[[6850335.8828125,24501476.50390625],[6850341.48828125,24501476.8828125],[6850362.171875,24501492.21484375],[6850387.4140625,24501508.86328125],[6850442.66796875,24501545.69921875],[6850502.34375,24501584.0078125],[6850558.3359375,24501619.37109375],[6850611.375,24501654.73046875],[6850671.05078125,24501693.04296875],[6850708.62109375,24501687.1484375],[6850735.34375,24501674.00390625]]}
]

這僅回答以下問題:如何將每個 json 對象與節點模式匹配?

代表 json 對象的每一行都與模式 '!' 匹配所以代碼是這樣的:

        oboe(url)
        .node('!', (row) => {
            console.log(row);
        })
        .on('end', () => {
            console.log('Stream finished');
        });

上面的代碼在處理所有 json 對象時記錄每個 json 對象和“流完成”。

現在修改了標題和問題以更好地匹配這個答案,我可能會問另一個更具體的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM