首页 > 解决方案 > 如何读取对象的特定属性

问题描述

我有一个对象,我想在其中只读 id。

我正在尝试使用此代码读取对象。

var d = JSON.parse(data);
    for (var i = 0; i < 4; i++) {
        arr.push(d['maps'][i].age);
        }

但它给了我错误

SyntaxError:JSON.parse:JSON 数据的第 1 行第 1 列出现意外字符

完整的html代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title> </title>
     <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
     <script src="js/jquery.js" ></script>
     <script src="js/test.json"></script>
</head>
<body>
     <div id="myDiv"><!-- Plotly chart will be drawn inside this DIV --></div>
  <script>
    <!-- JAVASCRIPT CODE GOES HERE -->
    var arr = [];
    var d = JSON.parse(data);
    for (var i = 0; i < 4; i++) {
        arr.push(d['maps'][i].age);
        }

    console.log(arr)    
    var trace1 = {
  x: arr, 
  y: [10, 15, 13, 17], 
  type: 'scatter'
};
var trace2 = {
  x: arr, 
  y: [16, 5, 11, 9], 
  type: 'scatter'
};
var data = [trace1, trace2];
Plotly.newPlot('myDiv', data);
  </script>
</body>
</html>

下面是我的对象定义:

data =   {
        "maps": [
            {
                "id": "1",
                "iscategorical": "0"
            },
            {
                "id": "2",
                "iscategorical": "0"
            },
            {
                "id": "3",
                "iscategorical": "0"
            }
        ]
    }

对象有什么问题?还是我的代码?

标签: javascript

解决方案


您向我们展示的数据已经被解析,这就是 JSON.parse 方法不起作用并引发错误的原因,而且 maps 集合中的元素中没有年龄键值对,这就是我使用 id 的原因片段中的属性

let initialData = {
    "maps": [
        {
            "id": "1",
            "iscategorical": "0"
        },
        {
            "id": "2",
            "iscategorical": "0"
        },
        {
            "id": "3",
            "iscategorical": "0"
        }
    ]
}

let jsonData = JSON.stringify(initialData)
let parsedJson = JSON.parse(jsonData)

console.log(parsedJson)


let arrHolder = []

var d = JSON.parse(jsonData);
    for (var i = 0; i < 3; i++) {
        arrHolder.push(d['maps'][i].id);
        }

console.log(arrHolder)


推荐阅读