【发布时间】:2015-12-08 00:58:00
【问题描述】:
我正在使用 IBM Bluemix 为学校项目制作 Web 服务。
我的项目需要从 API 请求 JSON,所以我可以使用它提供的数据。
我不太确定如何访问 JSON 中 [ ] 之间包含的数据。我知道这是一个数组,但我不知道如何从中提取数据。
这是我的.js 代码的末尾,在http.get 方法中。
我的 JSON 是:
{
"dataset": {
"id": 24226,
"dataset_code": "432",
"database_code": "BCB",
"name": "Interest rate - Selic target",
"description": "Interest rate - Selic target\nUnits: % p.y.",
"refreshed_at": "2015-11-27T00:33:34.774Z",
"newest_available_date": "2016-01-20",
"oldest_available_date": "1999-03-05",
"column_names": ["Date", "Value"],
"frequency": "daily",
"type": "Time Series",
"premium": false,
"limit": null,
"transform": null,
"column_index": null,
"start_date": "1999-03-05",
"end_date": "2016-01-20",
"data": [
["2016-01-20", 14.25],
["2016-01-19", 14.25],
["2016-01 -18", 14.25]
],
"collapse": null,
"order": "desc",
"database_id": 35
}
}
我只想获取一些日期和它们各自的值以在我的代码中使用,例如[2016-01-20]:14.25。
这是我的.js 文件:
// Hello.
//
// This is JSHint, a tool that helps to detect errors and potential
// problems in your JavaScript code.
//
// To start, simply enter some JavaScript anywhere on this page. Your
// report will appear on the right side.
//
// Additionally, you can toggle specific options in the Configure
// menu.
function main() {
return 'Hello, World!';
}
main();/*eslint-env node*/
//------------------------------------------------------------------------------
// node.js starter application for Bluemix
//------------------------------------------------------------------------------
// HTTP request - duas alternativas
var http = require('http');
var request = require('request');
// cfenv provides access to your Cloud Foundry environment
// for more info, see: https://www.npmjs.com/package/cfenv
var cfenv = require('cfenv');
//chama o express, que abre o servidor
var express = require('express');
// create a new express server
var app = express();
// serve the files out of ./public as our main files
app.use(express.static(__dirname + '/public'));
// get the app environment from Cloud Foundry
var appEnv = cfenv.getAppEnv();
// start server on the specified port and binding host
app.listen(appEnv.port, '0.0.0.0', function() {
// print a message when the server starts listening
console.log("server starting on " + appEnv.url);
});
app.get('/home1', function (req,res) {
http.get('http://developers.agenciaideias.com.br/cotacoes/json', function (res2) {
var body = '';
res2.on('data', function (chunk) {
body += chunk;
});
res2.on('end', function () {
var json = JSON.parse(body);
var CotacaoDolar = json["dolar"]["cotacao"];
var VariacaoDolar = json["dolar"]["variacao"];
var CotacaoEuro = json["euro"]["cotacao"];
var VariacaoEuro = json["euro"]["variacao"];
var Atualizacao = json["atualizacao"];
obj=req.query;
DolarUsuario=obj['dolar'];
RealUsuario=Number(obj['dolar'])*CotacaoDolar;
EuroUsuario=obj['euro'];
RealUsuario2=Number(obj['euro'])*CotacaoEuro;
Oi=1*VariacaoDolar;
Oi2=1*VariacaoEuro;
if (VariacaoDolar<0) {
recomend= "Recomenda-se, portanto, comprar dólares.";
}
else if (VariacaoDolar=0){
recomend="";
}
else {
recomend="Recomenda-se, portanto, vender dólares.";
}
if (VariacaoEuro<0) {
recomend2= "Recomenda-se, portanto, comprar euros.";
}
else if (VariacaoEuro=0){
recomend2="";
}
else {
recomend2="Recomenda-se,portanto, vender euros.";
}
res.render('cotacao_response.jade', {
'CotacaoDolar':CotacaoDolar,
'VariacaoDolar':VariacaoDolar,
'Atualizacao':Atualizacao,
'RealUsuario':RealUsuario,
'DolarUsuario':DolarUsuario,
'CotacaoEuro':CotacaoEuro,
'VariacaoEuro':VariacaoEuro,
'RealUsuario2':RealUsuario2,
'recomend':recomend,
'recomend2':recomend2,
'Oi':Oi,
'Oi2':Oi2
});
app.get('/home2', function (req,res) {
http.get('https://www.quandl.com/api/v3/datasets/BCB/432.json', function (res3) {
var body = '';
res3.on('data', function (chunk) {
body += chunk;
});
res2.on('end', function () {
var json = JSON.parse(body);
var ultimo= json[data]["0"]["1"];
console.log("a meta é"+ultimo)
)};
)};
)};
)};
)};
)};
【问题讨论】:
标签: arrays json node.js ibm-cloud