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