Javascript 从JSON获取元素属性名称
我正在尝试编写一个通用函数,它可以处理包含任意属性的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
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链接。