javascript - Node.JS 和 Object.Keys 与 json

标签 javascript json node.js

代码:

(URL是一个传递json数据的工作休息API)

var request = require('request');


var username = "user";
var password = "pass";
var auth = "Basic " + new Buffer(username + ":" + password).toString("base64");



var url = "URL";

request(
    {
        method: "GET",
        url : url
    },
    function (error, response, data) {

          console.log(data);

          var initial_index = Object.keys(data.sites)[0];
          var product_index = Object.keys(data.sites[initial_index].products)[0];

          var order_id = data.purchase_id;
          var title = data.sites[initial_index].products[product_index].title;
          var content = data.sites[initial_index].products[product_index].description;
          var image = data.sites[initial_index].products[product_index].image;
          var total_price = data.sites[initial_index].prices.final_price;
          var quantity = data.sites[initial_index].products[product_index].input_fields.quantity;
          var sold_by = data.sites[initial_index].info.name;
          var order_status = data.sites[initial_index].status;




          var datatwo = {
            "status": "published",
            "order_id": order_id,
            "title": title,
            "content": content,
            "image": image,
            "final_price": total_price,
            "quantity": quantity,  
            "sold_by": sold_by,  
            "order_status": order_status
          };      


    }
);

我在运行代码时收到此错误。怎么解决?

var initial_index = Object.keys(data.sites)[0];
                                 ^

TypeError: Cannot convert undefined or null to object

最佳答案

您没有解析您返回的 JSON(文本)。将其添加到您的请求回调的顶部:

data = JSON.parse(data);

例如:

request(
    {
        method: "GET",
        url : url
    },
    function (error, response, data) {
          data = JSON.parse(data);

          var initial_index = Object.keys(data.sites)[0];

          // ...

一旦你解析了它,你将拥有一个可以遍历的对象树。

关于javascript - Node.JS 和 Object.Keys 与 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40492212/

相关文章:

javascript - 我应该使用 PHP 将 CSS 和 JavaScript 文件导入到我的页面吗?

java - jcouchdb : svenson unable to parse json string

node.js - Nginx socket io websockets proxy pass

node.js - 如何在 nodejs 请求中禁用 Tls 1.3

node.js - Electron 错误AVDCreateGPUAccelerator : Error loading GPU renderer

javascript - 使用 php 和 MySQL 的表格 Accordion

javascript - 如何使用 v8 隐藏类优化技术进行优化?

javascript - nodeJS 创建动态数组并用作响应

python - 使用Django向前端传递JSON数据

python - 将 JSON 对象添加到列表中