在Javascript中解析json并在html上创建表
Parsing json and creating table on html in Javascript
我有下面的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
;
我该怎么做?
如果是data[0].xyz["agent"].agent_ip;
,它工作得很好,但由于ip中的周期,它没有
我能够将json文件读取到对象中,但不能获得特定的键值。我从服务器得到这个文件,因此不能有带有[]的数组;s引起问题。
这样做的问题是,您像访问数组一样访问它,但您没有对象数组。因此,您可以将接收到的文件转换为数组,也可以将对象保持原样并更改访问它们的方式。
您的主要问题是,每个密钥都有一个唯一的密钥,您需要引用该密钥才能访问数据。如果您知道它们提前设置关键帧,则可以像使用关联数组一样使用它们。您可以通过"访问每个属性操作人员
data["17.153.73.241"].agent.agent_ip; //Agent 2
否则,您将需要找到每个对象的密钥,并使用它来访问该对象。
data[key].agent.agent_ip
关于如何在这种情况下使用密钥访问对象,我已经把它放在了一个jsfiddle中。
参考文献:
- 在不知道密钥名称的情况下访问JSON对象的元素
- 通过json对象javascript进行迭代
- 访问/处理(嵌套)对象、数组或JSON
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);
}
这对我很有效。
相关文章:
- 从html创建一个指令,该指令按类名应用函数
- 用HTML创建一个下拉框的简单方法,只需包含0到x
- 基于当前内部HTML创建动态jQuery变量名称
- mootools:从 HTML 创建一个新的 DOM 元素
- 使用 flash、javascript、classic asp 从 html 创建 CSV
- JQuery + 从数组中为 html 创建单选按钮
- 100%的高度在主体和html创建滚动问题
- 使用JavaScript与常规HTML创建HTML元素
- 用HTML创建JavaScript数组
- 从HTML创建base64字符串
- 如何仅使用JS和HTML创建按钮
- 如何通过jquery .html创建一个href,然后使用它的事件
- 在用javascript和html创建程序时遇到问题
- 如何使用引导程序和HTML创建联系人表单
- 如何使用Javascript和HTML创建一个文档文件
- 用HTML创建登录页面
- 使用Canvas和Html 5创建类似flash的动画
- 使用jQuery从HTML创建一个JSON对象
- 如何禁用由html创建的特定dijit contentPane选项卡
- 用PHP, JavaScript和Html创建一个简单的购物车