我有一个基于用户交互动态创建的JSON对象,动态密钥每次都会改变
示例JSON
{
"normalkey": "John Smith",
"dynamickey ": "testing"
}
有没有办法在不知道密钥名称的情况下分配动态密钥名称。
$.ajax({
type: "POST",
url: ROOT+"controlpanel/menuBuilder",
data: "clicked="+menu,
dataType:"json",
success: function(data)
{
$('#foo').html(data.normalKey);
$('#bar').html(data.dynamicKey);
}
答案 0 :(得分:2)
当空间出现时,请使用[]
Bracket notation pattern
success: function(data)
{
$('#foo').html(data["normal key"]);
$('#bar').html(data["dynamic key"]);
}
<强>更新强> 获得关键用途 jQuery.each
$.each(data, function(key, item){
console.log(key); // here you get the key names
});
答案 1 :(得分:1)
由于这是一个javascript对象,您可以使用jQuery的$.each()
方法获取密钥名称:
success: function(data)
{
$.each(data, function(key, item){
console.log(key); // this gets you the key names
});
}
根据你的评论
如何在不使用名称的情况下将键2分配给变量?
var o = {
"normalkey": "John Smith",
"dynamickey ": "testing"
};
var a = []; // declare an empty array.
$.each(o, function(key, item){
a.push(key); // push the keys in it.
});
var dynkey = a.pop(); // .pop() gets you the dynamickey here as
// this is the last item in the array.
console.log(dynkey); // this logs = dynamickey
pop方法从数组中删除最后一个元素,并将该值返回给调用者。
所以你最后的评论是:
success: function(data)
{
var a = [];
$.each(data, function(key, item){
a.push(key); // this gets you the key names
});
var dynkey = a.pop();
$('#container').html(data[dynkey]); // <----here you have to do this.
}