Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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获取元素属性名称_Javascript_Jquery_Json - Fatal编程技术网

Javascript 从JSON获取元素属性名称

Javascript 从JSON获取元素属性名称,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试编写一个通用函数,它可以处理包含任意属性的JSON数组。鉴于以下情况: var propMap = '{"ddColor": "Color","ddSize": "Size", "ddOther": "Other"}' 如何在不指定属性和属性值的情况下迭代属性和属性值?换句话说,我希望迭代元素而不指定“ddColor”、“ddSize”或“ddOther”。然而,我想迭代名称及其值 我到处寻找解决方案,但找不到,也无法使其在JSFIDLE上工作: var propMap = '{"d

我正在尝试编写一个通用函数,它可以处理包含任意属性的JSON数组。鉴于以下情况:

var propMap = '{"ddColor": "Color","ddSize": "Size", "ddOther": "Other"}'
如何在不指定属性和属性值的情况下迭代属性和属性值?换句话说,我希望迭代元素而不指定“ddColor”、“ddSize”或“ddOther”。然而,我想迭代名称及其值

我到处寻找解决方案,但找不到,也无法使其在JSFIDLE上工作:

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
只需使用:

for(propMap中的变量x){
if(propMap.(x)){
//关键字:x
//值:propMap[x]
}
}
如果这实际上是一个字符串,那么您需要首先解析JSON,当然:

propMap = jQuery.parseJSON(propMap);
propMap=jQuery(propMap)

只需使用:

for(propMap中的变量x){
if(propMap.(x)){
//关键字:x
//值:propMap[x]
}
}
如果这实际上是一个字符串,那么您需要首先解析JSON,当然:

propMap = jQuery.parseJSON(propMap);
propMap=jQuery(propMap)

需要澄清的是,JSON数组是不存在的。有JSON字符串,它们可以表示数组或对象。我说过,如果尚未解析JSON,则需要先使用
jQuery.parseJSON
。(见我答案的下半部分,再加上jsFiddle)谢谢乔纳森。不确定正确的术语需要明确的是,没有JSON数组这样的东西。有JSON字符串,它们可以表示数组或对象。我说过,如果尚未解析JSON,则需要先使用
jQuery.parseJSON
。(见我答案的下半部分,再加上jsFiddle)谢谢乔纳森。不确定正确的术语如果不使用jQuery,这是获得安全的JSON解析器的最简单方法。@millimoose:问题是有标记的。我通常只使用
JSON.parse()
。它被认为是不安全的吗?@xbonez:它绝对安全,但在IE8和更早版本上不起作用。在JSFIDLE上尝试了你的例子。编辑我的问题以显示结果。我看到了新的评论,是的,我在JQuery中工作。我相信我的字符串是JSON。我可以使用.parseJSON。我来看看你的JSFIDLE链接。如果不使用jQuery,这是获得safeish JSON解析器的最简单方法。@millimoose:问题是有标记的。我通常只使用
JSON.parse()
。它被认为是不安全的吗?@xbonez:它绝对安全,但在IE8和更早版本上不起作用。在JSFIDLE上尝试了你的例子。编辑我的问题以显示结果。我看到了新的评论,是的,我在JQuery中工作。我相信我的字符串是JSON。我可以使用.parseJSON。我将查看您的JSFIDLE链接。