【问题标题】:I am trying to extract certain values from JSON data with NodeJS我正在尝试使用 NodeJS 从 JSON 数据中提取某些值
【发布时间】:2015-11-07 18:20:49
【问题描述】:

情况如下:

我有一个 Rails 应用程序,它可以抓取网站并将有效的 JSON 输出到一个 RESTful API 端点。

到目前为止,我可以使用我的 Node.js 脚本获取 JSON,但我无法将所需的值存储到局部变量中。

这是json:

[{"cohort":"1507","teacher":"Josh M."}]

我想将"1507" 以及"Josh M." 存储在一个变量中

我当前的脚本是:

var http = require('http');
var url = 'http://localhost:8080/api/v1/classroom_bs';

http.get(url, function(res){
    var body = '';

    res.on('data', function(chunk){
        body += chunk;
    });

    res.on('end', function(){
        var responseB = JSON.parse(body);
        var responseBStr = JSON.stringify(body);
        var jsonB = JSON.parse(responseBStr);
        console.log(responseB);
        console.log(responseBStr);
        console.log(jsonB);
    });
}).on('error', function(e){
      console.log("Error: ", e);
});

任何帮助将不胜感激!

我已经尝试了一些我在 SO 上找到的功能,但由于某种原因,我所有的 console.log(Object.keys) 返回数字,如 "1""2""3" 等。

我需要将这些值存储为变量的原因是我将通过 Arduino 使用 johnny5 库将这些值输出到 LCD 屏幕。

【问题讨论】:

  • Object{...} – 嵌套在一个数组中 – [...]。要访问对象,您必须首先访问数组的索引——responseB[0].cohort。欲了解更多信息:Access / process (nested) objects, arrays or JSON
  • 这完全有道理。让我再搞点什么,然后我会告诉你的!
  • 下面的答案完全有效,但它使用相同的逻辑。谢谢!

标签: javascript ruby-on-rails json node.js


【解决方案1】:

您用来发送到节点的 rails 应用程序是一个长度为 1 的数组,它是一个对象。要访问该对象,您必须说出您正在访问的数组元素。在这种情况下,数组 [0]。看来您的 rails scraper 正在填充一个数组。

要访问您提到的变量,您只需

    //Access that 1507
    var variable1 = payloadFromRails[0].cohort;
    //Access that teach, Josh M.
    var variable2 = payloadFromRails[0].teacher;

【讨论】:

    【解决方案2】:

    尝试在已解析的json 字符串的索引0 处选择对象

    var response = '[{"cohort":"1507","teacher":"Josh M."}]';
    
    var responseB = JSON.parse(response);
    
    var keys = Object.keys(responseB[0]);
    
    var cohort = responseB[0][keys[0]];
    
    var teacher = responseB[0][keys[1]];
    
    console.log(cohort, teacher)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2013-09-26
      • 2013-04-26
      相关资源
      最近更新 更多