【问题标题】:Parsing json and creating table on html in Javascript在 Javascript 中解析 json 并在 html 上创建表
【发布时间】:2016-08-30 09:53:38
【问题描述】:

我有以下 json 文件,正在阅读下面的代码。

{
    "17.216.30.177": {
        "agent": {
            "agent_ip": "17.216.30.177",
            "agent_cpu_type": "Intel Core i5",
            "agent_serial_num": "C02KQ00CFH46",
            "agent_hostname": "Beautiful-iMac.local",
            "agent_ram": "16 GB",
            "agent_processors": "4",
            "agent_system_type": "iMac14_2"
        },
        "devices": {
            "fedaa89792fdf9bcfe819cc9981bcda918dc1fa6": {
                "SerialNumber": "",
                "HardwareModel": "abc",
                "WiFiAddress": "abc",
                "BuildVersion": "abc",
                "kanzi": "315D0F",
                "current_state": 1,
                "UniqueChipID": "612806844428"
            },
            "47d46975e929d679f1c0713f7b060bf80390aeb9": {
                "SerialNumber": "",
                "HardwareModel": "lmn",
                "WiFiAddress": "lmn",
                "BuildVersion": "lmn",
                "kanzi": "315DF3",
                "current_state": 1,
                "UniqueChipID": "2572890213651"
            }
        },
        "last_alive_time": "2016-04-27 10:24:14"
    },
    "17.153.73.241": {
        "agent": {
            "agent_hostname": "aj-air.local",
            "agent_cpu_type": "Intel Core i5",
            "agent_processors": "2",
            "agent_ip": "17.244.49.99",
            "agent_serial_num": "C02M300KFY3V",
            "agent_system_type": "MacBookAir6_2",
            "agent_ram": "8 GB"
        },
        "devices": {
            "ccd457202545bef923e2d784f0aa30e12c4dfd43": {
                "HardwareModel": "pqr",
                "kanzi": "pqr",
                "SerialNumber": "",
                "current_state": 1,
                "UniqueChipID": "pqr",
                "WiFiAddress": "pqr",
                "BuildVersion": "pqr"
            }
        },
        "last_alive_time": "2016-04-27 10:30:08"
    }
}   


    function readTextFile(file, callback) {
            var rawFile = new XMLHttpRequest();
            rawFile.overrideMimeType("application/json");
            rawFile.open("GET", file, true);
            rawFile.onreadystatechange = function() {
            if (rawFile.readyState === 4 && rawFile.status == "200") {
                callback(rawFile.responseText);
            }
        }
        rawFile.send(null);
    }


    readTextFile("/resources/test.json", function(text){
        var data = JSON.parse(text);
        document.getElementById("demo").innerHTML = data[0]["agent"].agent_ip;
    });

data[0].17.216.30.177["agent"].agent_ip;

我怎样才能做到这一点?

Ff 是 data[0].xyz["agent"].agent_ip; ,它运行良好,但由于 ip 中的句点,它没有

【问题讨论】:

    标签: javascript html json parsing


    【解决方案1】:

    我能够将 json 文件读入对象,但无法获取特定的键值。我从服务器获取此文件,因此如果导致问题,则无法使用 [] 数组。

    这里的问题是您像访问数组一样访问它,但您没有对象数组。因此,您可以将收到的文件转换为数组,也可以按原样获取对象并更改访问它们的方式。

    您的主要问题是每个人都有一个唯一的密钥,您需要引用该密钥才能访问数据。如果您提前知道它们的键,则可以像关联数组一样使用它们。您可以通过“。”访问每个属性。操作员。

    data["17.153.73.241"].agent.agent_ip; //Agent 2
    

    否则,您将需要找到每个密钥并使用它来访问该对象。

    data[key].agent.agent_ip
    

    我已将它放在jsfiddle 中,说明在这种情况下如何使用密钥访问对象。

    参考资料:

    1. Accessing elements of JSON object without knowing the key names
    2. iterating through json object javascript
    3. Access / process (nested) objects, arrays or JSON

    【讨论】:

      【解决方案2】:
              readTextFile("/resources/test.json", function(text){
                  var data = JSON.parse(text);
                  for (var key in data) {
                      console.log("Agent IP-->", data[key].agent.agent_ip);
                      console.log("Number of devices -->", Object.keys(data[key].devices).length);
                      console.log("Total Number of devices -->", Object.keys(data[key].devices).length);
                  }
      

      这对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-30
        • 2014-02-05
        • 2012-12-06
        • 2017-03-16
        • 2022-09-23
        • 1970-01-01
        • 2021-12-20
        相关资源
        最近更新 更多