解析JSON字符串动态密钥
问题描述:
我有JSON数据如下 -解析JSON字符串动态密钥
var raw = {"raw":[{"W4Jlp9HKx_MVImNZuJwPqA!!:dgIN_ZskRAf5OtpgZ7tYLQ!!":{"name":"Name1","uniqID":"W4Jlp9HKx_MVImNZuJwPqA!!:dgIN_ZskRAf5OtpgZ7tYLQ!!"},"uFzQkOcsEwmRDGlob11Qiw!!:ArYiisKagqjnqMGfbKP7Yw!!":{"name":"Name2","uniqID":"uFzQkOcsEwmRDGlob11Qiw!!:ArYiisKagqjnqMGfbKP7Yw!!"},"fWcL6bvhCvp1wO95-7K3LA!!:XNYxDArq9E_6u2yaDbST0A!!":{"name":"Name3","uniqID":"fWcL6bvhCvp1wO95-7K3LA!!:XNYxDArq9E_6u2yaDbST0A!!"}}]}
键是动态的,即,第一键 “W4Jlp9HKx_MVImNZuJwPqA !!:dgIN_ZskRAf5OtpgZ7tYLQ !!”随着我们对JSON网址的每次呼叫而改变。
我想解析JSON数据并将数据存储在Javascript变量中。
我试图解析这与 -
var arra = JSON.parse(raw);
并试图获得使用
arra.raw[0].W4Jlp9HKx_MVImNZuJwPqA!!:dgIN_ZskRAf5OtpgZ7tYLQ!!.name
价值但这并没有帮助,我不要在此得到的值。我不确定为什么会发生这种情况。是否因为键包含特殊字符?
这将是巨大的,如果有一种方法列出向下键以及和获取与关键指标或类似的东西,即价值的东西像
arra.raw[0].key(0).name
其中,我没有给关键在于它随着每个呼叫而变化。即使现在没有使用关键名称的工作解决方案就足够了。
我希望在Javascript中实现这一点,如果不可能,请随时让我知道它可以实现什么语言。
非常感谢!
---编辑---
这个问题的答案越来越关键的使用与特殊字符的评论已被赋予了价值,我不得不用[]符号来获取结果。谢谢很多家伙! 但关于使用关键位置获取结果的第二个问题比关键名称保持打开。如果实现关键
答
在这里你去多一个解决方案https://jsfiddle.net/bm1n59hf/1/
var data = {"raw":[{"W4Jlp9HKx_MVImNZuJwPqA!!:dgIN_ZskRAf5OtpgZ7tYLQ!!":{"name":"Name1","uniqID":"W4Jlp9HKx_MVImNZuJwPqA!!:dgIN_ZskRAf5OtpgZ7tYLQ!!"},"uFzQkOcsEwmRDGlob11Qiw!!:ArYiisKagqjnqMGfbKP7Yw!!":{"name":"Name2","uniqID":"uFzQkOcsEwmRDGlob11Qiw!!:ArYiisKagqjnqMGfbKP7Yw!!"},"fWcL6bvhCvp1wO95-7K3LA!!:XNYxDArq9E_6u2yaDbST0A!!":{"name":"Name3","uniqID":"fWcL6bvhCvp1wO95-7K3LA!!:XNYxDArq9E_6u2yaDbST0A!!"}}]};
for(var key in data.raw[0]){
\t console.log("KEY: " + key + " Name: " + data.raw[0][key].name + " ");
}
+0
非常感谢。这很顺利。 – iMan
答
arra.raw[0].key(0).name
可能前工作:
Object.defineProperty(Object.prototype,"key",{
enumerable:false,
value: function(key){
return this[Object.keys(this)[key]||key];
}
});
或者,如果您使用本机的方式不介意:
Object.values(arra.raw[0])[0].name
从https://*.com/questions/11922383/access-process-nested-objects-arrays-or-json,可以使用括号记号:'arra.raw [0] [ “W4Jlp9HKx_MVImNZuJwPqA !!:dgIN_ZskRAf5OtpgZ7tYLQ !!”]。name] – apsillers
是否有可能更改JSON数据源,因为具有随机或不可知属性名称的对象没有用,数组会更好。 – James
!!是双重没有。使用括号符号! –