Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Node.js从嵌套JSON获取特定值_Node.js - Fatal编程技术网

使用Node.js从嵌套JSON获取特定值

使用Node.js从嵌套JSON获取特定值,node.js,Node.js,我对Node.JS完全陌生。我已经编写了Node.JS代码,并在JSON文件中获得了响应。JSON是嵌套格式的。我希望在嵌套的JSON中获取、存储一个变量并只打印一个值 代码: 获取整个JSON: { "id": "0001", "type": "donut", "name": "Cake", "image": { "url": "images/0001.jpg", "width": 200,

我对Node.JS完全陌生。我已经编写了Node.JS代码,并在JSON文件中获得了响应。JSON是嵌套格式的。我希望在嵌套的JSON中获取、存储一个变量并只打印一个值

代码:

获取整个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
。我想将其存储在一个变量中,并想在控制台中打印。

您可以使用
JSON.parse()
将JSON字符串转换为一个对象,然后您可以像检索常规JS对象一样检索值,如下所示:

let parsedData = JSON.parse(data)
process.stdout.write(console.log(parsedData.image.url)

你可以这样做

res.on('data', (d) => {
  var jsonObj = JSON.parse(d);
  console.log('width = ', jsonObj.thumbnail.width);
});

parse()将
d
中接收的字符串转换为JavaScript对象。然后,您可以通过标准点符号访问对象。

使用JSON.Parse(…)解析字符串。然后,该对象是一个标准JavaScript对象。您可以使用点符号(例如object.property)或通过索引符号(例如object['property'])访问它

您还可以嵌套它们,例如示例中的data.thumboil.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);
});
使用


htttps.request
这正常吗?
res.on('data', (d) => {
    let data = JSON.parse(d);
    let width = undefined;
    if (data.thumbnail) width = data.thumbnail.width;
    console.log(width);
});
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 && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);