Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何迭代此json对象(不使用jquery)_Javascript_Json - Fatal编程技术网

Javascript 如何迭代此json对象(不使用jquery)

Javascript 如何迭代此json对象(不使用jquery),javascript,json,Javascript,Json,我想遍历从var jsonObj json_encode()获得的json对象。在我看来,这与大多数人所拥有的格式不同。例如,W3S将其显示为json对象: { "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"

我想遍历从
var jsonObj json_encode()获得的json对象。在我看来,这与大多数人所拥有的格式不同。例如,W3S将其显示为json对象:

{
    "employees": [
        { "firstName":"John" , "lastName":"Doe" }, 
        { "firstName":"Anna" , "lastName":"Smith" }, 
        { "firstName":"Peter" , "lastName":"Jones" }
    ]
}
矿山似乎具有完整的结构:

{"PINEFOREST JEWELRY":
    ["3034.25","2002-01-02"],
"AMBERS DESIGN":
    ["2034.75","2002-01-02"],
"ELEGANT JEWELERS":
    ["206","2002-01-02"],
"SALEM'S JEWELERS":
    ["406","2002-01-02"]}

我能重复这个吗?

您可以使用
for in
和嵌套的
for

for (var key in data) {
    for (var i = 0; i < data[key].length; i++) {
        console.log(data[key][i]);
    }
}
for(变量输入数据){
对于(var i=0;i
您可以使用for循环遍历对象的直接属性,如下所示:

var val;
for(var key in obj) {
    if(obj.hasOwnProperty(key)){
        val = obj[key];
        console.log(val);
    }
}

是的,因为它是有效的json,所以您可以通过它进行验证

首先,您需要将json转换为javascript可以覆盖的内容,这可以通过
json.parse()
()来完成。我假设您上面描述的“json”是一个“json”字符串,因此:

var jewellery = JSON.parse(myJson); // replace myJson with whatever variable is holding your json
此时,您有一个
对象
,可以对其进行编辑。最简单的方法之一是使用
Object.keys()
()和
Array.forEach()
()如下:


试一试,否则你仍然可以使用其他人提交的其他解决方案,或者是可行的。这就是我要做的

看到这个答案:因为它是JSON,所以在这个例子中不需要使用
hasOwnProperty
。这会得到数字,我怎么也能得到名称呢?名称存储在
key
变量@bsapaka
Document.write(sales\u new\u accounts[key][I]
只给我数字,而
Document.write(sales\u new\u accounts[key]
给了我undefined@bsapaka--你必须在循环中使用它-
在循环外什么都没有是的,我确实在for循环中使用过它。注意forEach函数,因为它在某些浏览器中不受支持,如IE8()这可能是一个问题是的,这就是为什么我说尝试一下,如果它不起作用,那么使用其他人提交的解决方案:)
Object.keys(jewellery).forEach(function (key) {
    console.log(key); // would log 'PINEFOREST JEWELRY' the first time
    jewellery[key].forEach(function (price) {
        console.log(price); // Should log '3034.25' the first time
    }
});