首页 > 解决方案 > 使用 JavaScirpt 解析 JSON 文件

问题描述

我正在尝试使用 JavaScript 解析 JSON 文件。我设法用 JavaScript 打开了一个本地 JSON 文件,并用这段代码打印了它的密钥。我不知道如何获取每个键的值。我想获取x, y, z每个键的值并将它们分配给 JavaScript 中的变量。

脚本.js

function loadJSON(callback) {

var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
xobj.open('GET', 'js/data.json', true);
xobj.onreadystatechange = function () {
    if (xobj.readyState == 4 && xobj.status == "200") {

// .open will NOT return a value but simply returns undefined in async mode so use a callback
        callback(xobj.responseText);

    }
};
xobj.send(null);

}

// Call to function with anonymous callback
loadJSON(function(response) {
// Do Something with the response e.g.
var jsonresponse = JSON.parse(response);

// Assuming json data is wrapped in square brackets as Drew suggests
    var keys = Object.keys(jsonresponse);
    console.log(keys[0]);
});

数据.json

{
  "a": {
    "x": "12",
    "y": "2",
    "z": "17"
  },
  "b": {
    "x": "8",
    "y": "2",
    "z": "21"
  },
  "c": {
    "x": "9",
    "y": "3",
    "z": "17"
  }
}

标签: javascriptjson

解决方案


您的 json 解析结果是一个对象,因此您只需要将其作为对象而不是数组进行处理。

var jsonresponse = JSON.parse(response);

for(let data in jsonresponse) {
    for (let key in jsonresponse[data]) {
        let value = jsonresponse[data][key];
        console.log(key, value)
    }
}

推荐阅读