从JSON对象中获取属性键

4

前言:我是意大利人,抱歉我的英语不好。

我需要使用javascript/jquery从json对象中检索属性名称。

例如,从以下对象开始:

{
      "Table": {
          "Name": "Chris",
          "Surname": "McDonald"
       }
}

有没有一种方法可以获取字符串“Name”和“Surname”?

类似这样的:

//not working code, just for example
var jsonobj = eval('(' + previouscode + ')');
var prop = jsonobj.Table[0].getPropertyName();
var prop2 = jsonobj.Table[1].getPropertyName();
return prop + '-' + prop2; // this will return 'Name-Surname'

1
看这个:https://dev59.com/EWoy5IYBdhLWcg3wnfYi - Darin Kolev
3个回答

10
var names = [];
for ( var o in jsonobj.Table ) {
  names.push( o ); // the property name
}

在现代浏览器中:

var names = Object.keys( jsonobj.Table );

1
您可以浏览对象的属性:
var table = jsonobj.Table;
for (var prop in table) {
  if (table.hasOwnProperty(prop)) {
    alert(prop);
  }
}

hasOwnProperty测试是必要的,以避免包含从原型链继承的属性。


0

在jQuery中,您可以像这样获取它:

$.ajax({
    url:'path to your json',
    type:'post',
    dataType:'json',
    success:function(data){
      $.each(data.Table, function(i, data){
        console.log(data.name);
      });
    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接