javascript - 如何使用 var 的字符串显示特定对象

标签 javascript node.js json

<分区>

我在用JSON和JS操作时有疑问,获取max_players。我有以下内容:

JSON

{
    "football_team" : {
        "real_madrid": {
            "max_players" : 5
        }
    }
}

Javascript

var json = data.toJson();

console.log(json.football_team.real_madrid.max_players)
// return 5

我的疑问是,如果我有一个包含数据“real_madrid”的 var,我如何才能得到相同的结果,例如:


var json = data.toJson();
var name_team = "real_madrid";
var max_players = "json.football_team."+name_team+".max_players"

console.log(max_players)
// return json.football_team.real_madrid.max_players

有什么建议吗?

最佳答案

对于一个JSON对象,你不需要每次都做json.property.subproperty

属性可以作为 json["property"]["subproperty"] 访问

所以在您的情况下,您可以执行 json['football_team']['real_madrid']['max_players']

var json = data.toJson();
var name_team = "real_madrid";
var max_players = json['football_team'][name_team].max_players;
// or
// var max_players = json['football_team'][name_team]['max_players'];
// or
// var max_players = json.football_team[name_team].max_players;
// or
// var max_players = json.football_team[name_team]['max_players'];

console.log(max_players);

The notations json.property and json['property'] are interchangeable.

有时您需要注意属性名称。

失败的例子

json = { "value:" : 4, 'help"': 2, "hello'" : 32, 'data+': 2, "😎" : '😴' };

// correct
console.log(json['value:']);
console.log(json['help"']);
console.log(json["help\""]);
console.log(json['hello\'']);
console.log(json["hello'"]);
console.log(json["data+"]);
console.log(json["😎"]);

// wrong
console.log(json.value:);
console.log(json.help");
console.log(json.hello');
console.log(json.data+);
console.log(json.😎);

属性名称不应干扰 javascript 的语法规则,以便您能够以 json.property_name 的形式访问它们

并且在 JSON 中访问属性时 json['property']json["property"]

相同

当您有这样的疑问时,您可以打开浏览器的控制台并试验 JSON 对象。

关于javascript - 如何使用 var 的字符串显示特定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57797440/

相关文章:

javascript - 使用 jquery 计算动态创建的 html 元素

javascript - ng-add 和 npm 链接 - 如何模拟 npm 注册表

json - 使用jq将多个JSON的一个属性连接到一个文件中

JSONSerialization 与 URLSession.shared.dataTask 错误

javascript - PHP 未收到 Ajax 发送的 JSON

javascript - 一页中具有不同参数的多个数据表

javascript - Ajax 文件上传进度事件未触发

jquery - 如何使用显示的所有 Div 的 Jquery 从属性 'data-sort' 创建数组?

javascript - Node.js 数组实例化

node.js - Mongoose 如果有新引用则保存