Mam interfejs API, który zwraca takie dane:

{"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]]}

Z takimi kodem:

    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;
    });

Przyjeżdżamy do węzła, a nie z każdą linią, ale z każdą oddzielną wartością. I.E Wartość wiersza wynosi 1 czas "punkt", 2nd czas 817315, trzeci czas 141 i tak dalej.

Moim celem jest mieć obiekt JSON na każdej linii, który ma zostać przeczytany w obiekcie.

Zapytałem podobne pytanie Ale ponieważ pierwsza kwestia była problemem CORS Cors API stała się pytaniem o CORS, które utożsamiałem zgodnie z tym.

-1
char m 26 luty 2019, 13:59

2 odpowiedzi

Najlepsza odpowiedź

Odpowiedzi tylko na pytanie: jak dopasować każdy obiekt JSON z wzorem węzła?

Każda linia reprezentuje obiekt JSON jest dopasowany do wzoru "!" Więc kod jest taki:

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

Kod powyżej loguje każdy obiekt JSON i "Strumień zakończony", gdy obsługiwane są wszystkie obiekty JSON.

Tytuł i pytanie są teraz modyfikowane, aby dopasować tę odpowiedź lepiej i prawdopodobnie pytam o kolejne bardziej szczegółowe pytanie.

0
char m 26 luty 2019, 19:22

Ta odpowiedź serwerowa jest złą praktyką. Ponieważ twój interfejs API działa na LocalHost, wierzę, że możesz zmienić tę odpowiedź. Proszę, możesz odpowiedzieć na interakcję 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]]}
]
0
MoxxiManagarm 26 luty 2019, 11:19