关于json:在javascript中获取对象的变量

get variables of an object in javascript

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to list the properties of a javascript object

我正在做一个从某些服务接收JSON object的应用程序。使用JSON.parse()解析此对象,并返回JavaScript Object

我有没有可能找出物体内部存在的不同的variables

例子:

1
2
3
4
5
var some_object
{
    var a:"first"
    var b:"second"
}

我要想办法从这个对象中得到a和b的名字some_object

javascript中是否有任何预定义的方法可以做到这一点?


这样就可以做到:

1
2
3
for (var key in some_object) {
    console.log(key, some_object[key]);
}

但是,您需要以不同的方式初始化对象:

1
2
3
4
5
var some_object = {
    a:"first",  // Note: Comma here,
    b:"second", // And here,
    c:"third"   // But not here, on the last element.
}

结果:

1
2
a first
b second

因此,在我的for循环中,key是值的名称,some_object[key]是值本身。

如果您已经知道对象中的变量("名称"),可以这样访问它们:

1
2
3
console.log(some_object.a) //"first";
//or:
console.log(some_object["b"]) //"second";


你只要打电话给some_object.a就可以得到asome_object.b就可以得到b等。

不过,你不应该在这样的物体内看到var。对象表示法通常如下所示:

1
2
3
4
var some_object = {
    a:"first",
    b:"second"
}

注意,除了最后一个属性外,没有var声明,对象的每个属性后面都使用逗号。


你可以这样做:

1
2
3
4
5
6
7
8
var myObject = {
  abc: 14,
  def:"hello"
}

for (var i in myObject ) {
  alert("key:" + i +", value:" + myObject[i])
}

在这种情况下,i将迭代myObject(abcdef的键。使用myObject[i]可以获得i中当前键的值。

请注意,对象定义错误。而不是

1
var a:"first"

你只需要用

1
a:"first"

内部对象。