从JSON获取元素属性名称

时间:2012-07-01 23:43:05

标签: javascript jquery json

我正在尝试编写一个适用于包含任意属性的JSON数组的泛型函数。鉴于以下内容:

var propMap = '{"ddColor": "Color","ddSize": "Size", "ddOther": "Other"}'

如何在不指定的情况下迭代属性及其值?换句话说,我想迭代元素而不指定“ddColor”,“ddSize”或“ddOther”。然而,我想迭代名称及其价值。

我一直在找一个解决方案,但找不到一个,也无法让它在jsFiddle上运行:

var propMap = '{"ddColor": "Color","ddSize": "Size"}'

for(var x in propMap) {
    // Key: x
    // Value: propMap[x]
    alert(x + ': ' + propMap[x]);
}

当我运行上面的代码时,它似乎逐个字符地迭代。例如:

1: C
2: o
3: l
4: o
5: r

1 个答案:

答案 0 :(得分:5)

只需使用for in loop

for (var x in propMap) {
    if (propMap.hasOwnProperty(x)) {
        // Key: x
        // Value: propMap[x]
    }
}

如果那实际上是一个字符串,你当然需要首先解析JSON:

propMap = jQuery.parseJSON(propMap);

Here's a jsFiddle, too.