获取对象属性的值,其中键是空字符串

时间:2012-12-12 21:17:05

标签: javascript properties javascript-objects

鉴于此对象:

: http://www.w3.org/2005/Atom
gd: http://schemas.google.com/g/2005 
openSearch: http://a9.com/-/spec/opensearch/1.1/ 
app: http://www.w3.org/2007/app; 
media: http://search.yahoo.com/mrss/

如何获取第一个属性的值?我怀疑这是一个简单的过程,但我画了一个空白。提前谢谢。

对象构建如下:

服务器端(php):

$namespaces = $feedXML->getNamespaces(true);
$arr = array(
'Status' => 'Success',
'Message' => 'Feed fetched.',
'Namespaces' => $namespaces,
'Feed XML' => $feedXML
);
echo json_encode($arr);

客户端(JS):

   var output = '';
    for (property in dataj["Namespaces"]) {
        output += property + ': ' + dataj["Namespaces"][property] + '; ';
    }
    alert(output);

我希望能够检查命名空间,看看它是Atom还是RDF。

听起来只是迭代每个属性将是最好的方式。

3 个答案:

答案 0 :(得分:8)

如果您尝试获取其键为空字符串的属性的值,则可以执行

var value = myObject[''];

如果您尝试获取对象的“第一个属性”,则不能,因为javascript对象中的属性未被排序。

答案 1 :(得分:1)

不保证订购属性。但是,您可以遍历所有属性以找到正确的属性(如果您知道要查找的内容):

for(var prop in obj) {
    if(obj.hasOwnProperty(prop))
        doSomethingWith(obj[prop]);
}

参考:Iterating over every property of an object in javascript using Prototype?

然后通过

获取密钥
var value = obj[key];

答案 2 :(得分:1)

您可以尝试以下代码:

var test_bject = {'test': 1, 'test2': 2, 'test3': 3}, first_value;

for (i in test) {
  first_value = test_object[i];
  break;
}