Использование данных restAPI с использованием Node - PullRequest
0 голосов
/ 24 марта 2020

Я звоню ниже restAPI, используя node JS.

enter image description here

Я использую код ниже.

var Request = require("request");
Request.get("http://localhost:8080/ords/hr/rest-v3/item/Sugar", (error, response, body) => {

    if (error) {
        return console.dir(error);
    }

    console.log(response.body);
});

Это ниже выдает вывод, который является правильным.

{"items":[{"itemid":101,"itemname":"Sugar","itemcost":32.5}],"hasMore":false,"limit":0,"offset":0,"count":1,"links":[{"rel":"self","href":"http://localhost:8080/ords/hr/rest-v3/item/Sugar"},{"rel":"describedby","href":"http://localhost:8080/ords/hr/metadata-catalog/rest-v3/item/item"}]}

Как я могу получить доступ только к itemcost, а не ко всему телу. Я новичок в узле, поэтому не знаком со многими вещами. Не могли бы вы помочь мне в этом.

Ответы [ 3 ]

2 голосов
/ 24 марта 2020

Может быть, это может помочь вам.

var Request = require("request");
Request.get("http://localhost:8080/ords/hr/rest-v3/item/Sugar", (error, response, body) => {

if (error) {
return console.dir(error);
}
let jsonData = JSON.parse(response.body);
let obj= new Object(jsonData);

 obj.items.forEach(itemChild => {
     let cost=itemChild.itemcost;
     console.log(cost);
 })

});
1 голос
/ 25 марта 2020

Учитывая ваш вклад, вы можете просто сделать это:

    let input  = {
    "items": [
        {
            "itemid": 101,
            "itemname": "Sugar",
            "itemcost": 32.5
        }
    ],
    "hasMore": false,
    "limit": 0,
    "offset": 0,
    "count": 1,
    "links": [
        {
            "rel": "self",
            "href": "http://localhost:8080/ords/hr/rest-v3/item/Sugar"
        },
        {
            "rel": "describedby",
            "href": "http://localhost:8080/ords/hr/metadata-catalog/rest-v3/item/item"
        }
    ]
};

let json = JSON.parse(JSON.stringify(input));
json.items.map(item =>{
    console.log(item.itemcost)
})

Здесь вы можете найти работающее решение здесь

1 голос
/ 24 марта 2020

вы можете выполнить итерацию response.body.items и получить стоимость всех элементов в массиве items следующим образом:

var Request = require("request");
Request.get("http://localhost:8080/ords/hr/rest-v3/item/Sugar", (error, response, body) => {

    if (error) {
        return console.dir(error);
    }

    console.log(response.body);
    const itemCosts = response.body.items.map(item => item.itemcost);
    console.log(itemCosts);
});
...