javascript - 当 JSON 对象名称不是原子时如何从 JSON 中提取数据

标签 javascript

以下是使用 Xstream 创建的简单 JSON 对象。它是一个有效的 JavaScript 对象吗?实际上我想问一下如何访问第一人称信息,如 id、用户名、密码等。但是当我在浏览器中查看此文件时,显示的网页未显示“21”。我希望该页面应显示 21。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script>
        var obj = {"records":[
                     {"beans.Person":[
                        {"id":21,"name":"Name21","username":"Username21","password":"password21","age":41,"sex":true},
                        {"id":22,"name":"Name22","username":"Username22","password":"password22","age":42,"sex":true},
                        {"id":23,"name":"Name23","username":"Username23","password":"password23","age":43,"sex":true},
                        {"id":24,"name":"Name24","username":"Username24","password":"password24","age":44,"sex":true},
                        {"id":25,"name":"Name25","username":"Username25","password":"password25","age":45,"sex":true},
                        {"id":26,"name":"Name26","username":"Username26","password":"password26","age":46,"sex":true},
                        {"id":27,"name":"Name27","username":"Username27","password":"password27","age":47,"sex":true},
                        {"id":28,"name":"Name28","username":"Username28","password":"password28","age":48,"sex":true},
                        {"id":29,"name":"Name29","username":"Username29","password":"password29","age":49,"sex":true},
                        {"id":30,"name":"Name30","username":"Username30","password":"password30","age":50,"sex":true}
                       ]
                     }
                    ]
                  } 

          document.write(obj.records[0].beans.Person[0].id);
     </script>
  </head>
  <body>

  </body>
</html>

但是当我在浏览器中查看此文件时,显示的网页没有显示 21。我希望该页面应显示 21。

您可以直接复制粘贴源码试试看。它不显示 21。我如何访问这些值。

最佳答案

您的问题是在标识符 "beans.Person" 中使用了 ".",这意味着您必须引用它,如下所示:

obj.records[0]["beans.Person"][0].id

并且避免使用 document.write 除非你有充分的理由并且知道你在做什么。

<div id="result"></div>

var obj = {
    "records": [{
        "beans.Person": [{
            "id": 21,
            "name": "Name21",
            "username": "Username21",
            "password": "password21",
            "age": 41,
            "sex": true
        }, {
            "id": 22,
            "name": "Name22",
            "username": "Username22",
            "password": "password22",
            "age": 42,
            "sex": true
        }, {
            "id": 23,
            "name": "Name23",
            "username": "Username23",
            "password": "password23",
            "age": 43,
            "sex": true
        }, {
            "id": 24,
            "name": "Name24",
            "username": "Username24",
            "password": "password24",
            "age": 44,
            "sex": true
        }, {
            "id": 25,
            "name": "Name25",
            "username": "Username25",
            "password": "password25",
            "age": 45,
            "sex": true
        }, {
            "id": 26,
            "name": "Name26",
            "username": "Username26",
            "password": "password26",
            "age": 46,
            "sex": true
        }, {
            "id": 27,
            "name": "Name27",
            "username": "Username27",
            "password": "password27",
            "age": 47,
            "sex": true
        }, {
            "id": 28,
            "name": "Name28",
            "username": "Username28",
            "password": "password28",
            "age": 48,
            "sex": true
        }, {
            "id": 29,
            "name": "Name29",
            "username": "Username29",
            "password": "password29",
            "age": 49,
            "sex": true
        }, {
            "id": 30,
            "name": "Name30",
            "username": "Username30",
            "password": "password30",
            "age": 50,
            "sex": true
        }]
    }]
}

document.getElementById("result").textContent = obj.records[0]["beans.Person"][0].id;

关于 jsfiddle

关于javascript - 当 JSON 对象名称不是原子时如何从 JSON 中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16117662/

相关文章:

javascript - 如何使文本字段中的所有内容都是大写字母/大写字母?

javascript - 在Webpack4中设置./src的路径?

javascript - 根据 jquery 条件应用样式

javascript - 用于 JavaScript 的 Selenium Webdriver - 添加 'Sizzle' 策略

javascript - jquery datepicker getTime 不是 UTC

javascript - 如何根据 Jquery 对话框宽度将 2 列变成 1 列?

javascript - 使用 jQuery 应用正则表达式替换元素内的文本

javascript - Facebook Create React App Build - 添加图像作为 Prop 类型

javascript - Pale Moon 中的简单 firefox 扩展 "not compatible"错误

javascript - AngularJS 路由未按预期运行