如何正确访问JSON数组?

时间:2014-12-16 23:57:02

标签: javascript json

我有一个格式为{ "easy" : [1, 14],"hard":[12, 10]}的外部JSON文件。如何访问json文件的所有元素,以及如何找到密钥是否已存在于其中并仅获取该数据。示例:我只想访问与“easy”关联的值,我该怎么做?

4 个答案:

答案 0 :(得分:2)

将文件内容读入字符串并使用JSON.parse。使用typeof!=' undefined'检查对象键:

var json = '{ "easy" : [1, 14],"hard":[12, 10]}',
var obj = JSON.parse(json);
if(typeof obj.easy !== 'undefined'){
   alert(obj.easy[0]);
}

答案 1 :(得分:1)

.contains.indexOfObject.keys(userscores)一起使用。

var userscores = JSON.parse(jsonString);

if ((Object.keys(userscores)).contains('easy'))
{
    var data = userscores.easy;
}

JSFiddle here使用.indexOf

答案 2 :(得分:1)

首先,您需要在JavaScript代码中实际获取该文件。

下面是一个简单的AJAX请求,当收到JSON时,将其转换为JavaScript对象,以便更容易使用:

function ajax() {
    var xhr = new XMLHttpRequest(); // for IE7+, Chrome, Safari, Opera
    xhr.onreadystatechange = function() {
        if(xhr.readyState == 4 && xhr.status == 200) {
            var json_object = JSON.parse(xhr.responseText); // takes the response text from the server (the contents of the JSON file) and turns it into a JavaScript object.
        }
    }
    xhr.open("GET", "http://www.myserver.com/my_json.json", true);
    xhr.send();
}

答案 3 :(得分:1)

假设您的JSON已分配给名为userscores的变量。您可以使用.表示法访问JSON中的对象,即userscores.easy以访问数组[1, 14]

var userscores = {
  "easy": [1, 14],
  "hard": [12, 10]
};

console.log(userscores.easy);

for(i = 0; i < userscores.easy.length; i++) {
  var li = document.createElement("li"),
      text = document.createTextNode(userscores.easy[i]);
  
  li.appendChild(text);
  
  document.getElementById("easy").appendChild(li); 
}
<ul id="easy"></ul>