如何申请一个JSON API

我正在使用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: % py", "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 } } 

我只是想得到一些date和他们各自的价值观在我的代码中使用,如[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) )}; )}; )}; )}; )}; )}; 

要访问上述数据结构中的数据,特别是在数组中的数据。 你可以使用下面的语法。

以下假设您的数据存储在名为json的variables中。

 json.dataset.data[0] 

你可以用[0]访问数组的第一个元素,这意味着访问数组中的第一个元素。 数组索引从0开始。

如果你想更深入的上述代码将返回以下内容。

 [ '2016-01-20', 14.25 ] 

如果你想访问date,你可以使用以下。

 json.dataset.data[0][0] 

它会返回以下内容。

 2016-01-20 

如果你想访问另一个值,你可以使用以下内容。

 json.dataset.data[0][1] 

它会返回以下内容。

 14.25