#node.js
#node.js
Вопрос:
Я совершенно новичок в Node.JS . Я написал узел.JS-код и получаем ответ в файле JSON. JSON находится во вложенном формате. Я хочу получить, сохранить в переменной и напечатать только одно значение внутри вложенного JSON.
Код:
var https = require('https');
var optionget = {
host : 'api-dev.dataoverflow.com',
port : 443,
path : '/test1/test2/MR0000091/benifits?latency=RTIME',
method : 'GET',
HEADERS: {
'Authorization' : 'Basic Qjrfrfhurhfurhjfr2839gbfwj==',
'X-PruAppID : 'PlainCardPortal'
}
};
console.info(optionsget)
var reqGet = htttps.request(optionsget, function(res) {
console.log("statusCode: ", res.statusCode);
res.on('data', function(d) {
process.stdout.write(d);
});
});
reqGet.end();
reqGet.on('error', function(e) {
console.error(e);
});
var optionsgetmsg = {
host : 'api-dev.dataoverflow.com',
port : 443,
method : 'GET'
};
console.info(optionsgetmsg);
var reqGet = https.request(optionsget, function(res) {
console.log("statusCode: ", res.statusCode);
res.setEncoding('utf-8')
res.on('data', function(data) {
process.stdout.write(data);
});
});
reqGet.end();
reqGet.on('error', function(e) {
console.error(e);
});
Получаем весь JSON:
{
"id": "0001",
"type": "donut",
"name": "Cake",
"image":
{
"url": "images/0001.jpg",
"width": 200,
"height": 200
},
"thumbnail":
{
"url": "images/thumbnails/0001.jpg",
"width": 32,
"height": 32
}
}
Я хочу получить width=32
только то, что находится под миниатюрой. Я хочу сохранить его в переменной и хочу распечатать в консоли.
Комментарии:
1.
htttps.request
Это нормально?
Ответ №1:
Вы можете использовать JSON.parse()
для преобразования вашей строки JSON в объект, а затем вы можете извлечь свое значение, как если бы вы использовали обычный JS-объект, подобный этому:
let parsedData = JSON.parse(data)
process.stdout.write(console.log(parsedData.image.url)
Ответ №2:
Вы можете сделать что-то вроде
res.on('data', (d) => {
var jsonObj = JSON.parse(d);
console.log('width = ', jsonObj.thumbnail.width);
});
JSON.parse() преобразует полученную строку в d
в объект JavaScript. Затем вы можете получить доступ к объекту с помощью стандартной точечной записи.
Ответ №3:
Проанализируйте строку с помощью JSON.parse(…). Тогда объект является стандартным объектом JavaScript. Вы можете получить к нему доступ, используя либо точечную нотацию (например, object.property), либо через индексную нотацию (например, object[‘свойство’])
Вы также можете вложить их, например, в вашем примере, data.thumbnail.width
res.on('data', (d) => {
let data = JSON.parse(d);
let width = data.thumbnail.width;
console.log(width);
});
Однако, если миниатюра может быть неопределенной, вам следует проверить это.
res.on('data', (d) => {
let data = JSON.parse(d);
let width = undefined;
if (data.thumbnail) width = data.thumbnail.width;
console.log(width);
});
Ответ №4:
Используйте запрос npm
var request = require('request');
var options = {
url: 'api-dev.dataoverflow.com:443/test1/test2/MR0000091/benifits?latency=RTIME',
headers: {
'Authorization': 'Basic Qjrfrfhurhfurhjfr2839gbfwj==',
'X-PruAppID': 'PlainCardPortal'
}
};
function callback(error, response, body) {
if (!error amp;amp; response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);