Javascript 如何正确访问JSON数组?

Javascript 如何正确访问JSON数组?,javascript,json,Javascript,Json,我有一个外部JSON文件,格式为{“easy”:[1,14],“hard”:[12,10]}。如何访问json文件的所有元素,以及如何查找其中是否已存在密钥并仅获取该数据。示例:我只想访问与“easy”相关联的值,如何操作?将文件内容读入字符串并使用JSON.parse。使用typeof!='“未定义”以检查对象键: var json = '{ "easy" : [1, 14],"hard":[12, 10]}', var obj = JSON.parse(json); if(typeof ob

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

将文件内容读入字符串并使用
JSON.parse
。使用typeof!='“未定义”以检查对象键:

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

将文件内容读入字符串并使用
JSON.parse
。使用typeof!='“未定义”以检查对象键:

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

.contains
.indexOf
对象.keys(userscores)
一起使用


使用
.indexOf
使用
包含
对象.key(userscores)
一起使用
.indexOf


首先使用
.indexOf

,您需要在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();
}

首先,您需要在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();
}

假设您的JSON被分配给一个名为
userscores
的变量。您可以使用
符号访问JSON中的对象,即
用户分数。轻松访问数组
[1,14]

var用户分数={
“简单”:[1,14],
“硬”:[12,10]
};
log(userscores.easy);
对于(i=0;i

    假设您的JSON被分配给一个名为
    userscores
    的变量。您可以使用
    符号访问JSON中的对象,即
    用户分数。轻松访问数组
    [1,14]

    var用户分数={
    “简单”:[1,14],
    “硬”:[12,10]
    };
    log(userscores.easy);
    对于(i=0;i

      文件名为userscores。所以我会像userscores.easy一样访问它。我知道,但如何检查easy是否已经存在?因为当我像(if(userscores.easy))这样检查它时,我得到的是未定义的文件,您通过AJAX请求检索该文件吗?文件名是userscores。所以我会像userscores.easy一样访问它。我知道,但如何检查easy是否已经存在?因为当我像(if(userscores.easy))这样检查它时,我变得没有定义,你通过AJAX请求检索文件?
      alert(obj.easy[0])
      只返回
      1
      所以
      alert(obj.easy)
      应该足够了,因为OP似乎需要
      easy
      alert(obj.easy[0]中的所有数据
      仅返回
      1
      因此
      警报(obj.easy)
      应该足够了,因为OP似乎需要
      easy
      键中的所有数据。在这里,简单或硬输入由用户给出,并存储在var类型中。所以当我做userscores.input时,它给出了一个错误,因为无法访问undefined.Ah。只需使用
      userscores[input]
      。这里有一个更新的fiddle使用它:假设我想添加一个新的键值对,如“med”:[2,45]。我该怎么做?你是说从外部文件获取数据之后?只需将该属性添加到已解析的对象(
      userscores
      ):
      userscores.med=[2,45]
      userscores[“med”]=[2,45]此处,简单或硬输入由用户提供,并存储在var类型中。所以当我做userscores.input时,它给出了一个错误,因为无法访问undefined.Ah。只需使用
      userscores[input]
      。这里有一个更新的fiddle使用它:假设我想添加一个新的键值对,如“med”:[2,45]。我该怎么做?你是说从外部文件获取数据之后?只需将该属性添加到已解析的对象(
      userscores
      ):
      userscores.med=[2,45]
      userscores[“med”]=[2,45]